Spring Boot/Spring Boot Auto Configuration(18)
-
AutoConfigurationImportSelector
AutoConfigurationImportSelector는 Spring Boot의 자동 구성(autoconfiguration) 메커니즘에서 중요한 역할을 담당하는 클래스입니다. 이 클래스는 애플리케이션이 시작될 때 필요한 자동 구성 클래스를 동적으로 선택하는데 사용됩니다. Spring Boot에서는 기본적으로 META-INF/spring.factories 파일을 통해 자동 구성 클래스를 찾지만, Spring Boot 2.7 이후로는 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일도 함께 사용되기 시작했습니다.자세한 내용은 다음과 같습니다.1. AutoConfigurationImportSelector의 역..
2024.10.18 -
DeferredImportSelector
DeferredImportSelector는 Spring Framework에서 구성 클래스를 동적으로 로딩하는 인터페이스인 ImportSelector를 확장한 인터페이스로, 일반 ImportSelector보다 더 나중에 실행되어 구성 클래스를 로딩할 수 있습니다. DeferredImportSelector는 스프링 컨텍스트가 초기화되는 과정에서 다른 빈이나 구성이 먼저 처리된 후에 실행됩니다. 이 특성 때문에 주로 프레임워크 확장, 모듈화된 구성, 또는 복잡한 로딩 순서가 필요한 경우에 사용됩니다.주요 개념 및 사용 목적ImportSelector는 구성 클래스를 동적으로 로드하는 기능을 제공합니다.DeferredImportSelector는 '지연된(Deferred)' 방식으로 ImportSelector보다..
2024.10.17 -
spring-boot-autoconfigure.jar
spring-boot-autoconfigure.jar 내의 각 패키지들은 스프링 부트의 자동 구성(Auto-Configuration) 기능을 통해 사용됩니다. 자동 구성은 애플리케이션이 실행될 때, 클래스패스에 존재하는 라이브러리와 환경을 감지하여 필요한 빈(bean)을 자동으로 생성하고 설정하는 스프링 부트의 핵심 기능 중 하나입니다.각 패키지들은 특정 기능(예: JPA, 데이터베이스, 웹 서버, 보안 등)에 대한 자동 구성을 제공하며, 이러한 패키지들이 언제 사용되는지를 이해하려면 애플리케이션의 요구에 따라 자동 구성 클래스가 언제 로드되는지를 이해하는 것이 중요합니다.spring-boot-autoconfigure.jar의 주요 패키지들이 사용되는 시점1. 데이터베이스 관련 자동 구성 패키지패키지 예..
2024.10.16 -
spring.factories
🚀 Spring Boot의 spring.factories 완벽 분석 🔍🎯 목표:spring.factories 파일이 무엇이며, Spring Boot에서 어떤 역할을 하는지 심층적으로 이해Spring Boot의 자동 구성(Auto Configuration)과의 관계 분석SpringFactoriesLoader의 내부 동작 원리실제 프로젝트에서 spring.factories를 활용하는 고급 기법 학습최적화 및 운영 시 고려 사항🏗️ 1. spring.factories란?🔹 개념 정의✅ spring.factories는 Spring Boot의 자동 구성(Auto Configuration) 시스템의 핵심 메타데이터 파일✅ 아티팩트 JAR의 클래스패스(classpath) 내의 META-INF/spring.f..
2024.10.16 -
Project Classpath
프로젝트의 클래스패스(Classpath)는 프로젝트가 실행될 때 JVM이 클래스, 리소스, 라이브러리를 찾기 위해 참조하는 경로입니다. 클래스패스는 컴파일 시간과 실행 시간 모두에서 사용되며, 프로젝트의 빌드 시스템(예: Maven)과 IDE(예: STS4, IntelliJ) 설정에 따라 달라집니다.프로젝트의 클래스패스1. 로컬 파일 시스템프로젝트 클래스패스는 주로 프로젝트의 특정 디렉토리와 외부 라이브러리(예: Maven 의존성 라이브러리)로 구성됩니다.로컬 파일 시스템에서 클래스패스는 다음과 같은 요소들을 포함할 수 있습니다:소스 코드 디렉토리: 예를 들어, src/main/java는 프로젝트의 소스 파일들이 위치한 디렉토리로 클래스패스에 포함됩니다.컴파일된 클래스 파일: 프로젝트의 컴파일된 클래스 ..
2024.10.16 -
@AutoConfigurationPackage
@AutoConfigurationPackage는 스프링 부트에서 자동 구성과 관련된 패키지 스캐닝을 도와주는 어노테이션으로, 일반적으로 스프링 부트의 자동 구성 기능을 더욱 효율적으로 사용하기 위해 사용됩니다. 이 어노테이션은 스프링 부트의 자동 구성 메커니즘에서 중요한 역할을 합니다. 주로 @EnableAutoConfiguration 또는 @SpringBootApplication과 함께 사용되며, 자동으로 패키지를 스캔하여 특정 컴포넌트들을 등록할 때 유용합니다.@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import(AutoConfigurationPackages.Registrar.class)publi..
2024.10.16