https://sundaland.tistory.com/395 [ ▶ ConfigurationClassParser ] ConfigurationClassParser는 Spring 프레임워크의 핵심 클래스 중 하나로, 애플리케이션의 설정 클래스를 파싱하고 분석하여 Spring 컨테이너에 빈 정의를 등록하는 역할을 한다. 주로 @Configuration, @Component, @ComponentScan, @Import 등과 같은 어노테이션을 처리하고, 설정 정보를 기반으로 빈을 생성할 수 있도록 설정 클래스의 메타데이터를 추출한다. 이 클래스는 Spring 컨테이너에서 Java 기반 설정을 사용하는 애플리케이션의 설정 과정을 관리하는 매우 중요한 컴포넌트이다. [ ▷ ConfigurationClassParse..
Spring Boot/Auto-Configuration
https://sundaland.tistory.com/390 [ ▶ AutoConfigurationImportSelector ] AutoConfigurationImportSelector는 Spring Boot의 자동 구성(autoconfiguration) 메커니즘에서 중요한 역할을 담당하는 클래스이다. 이 클래스는 애플리케이션이 시작될 때 필요한 자동 구성 클래스를 동적으로 선택하는데 사용된다. Spring Boot에서는 기본적으로 META-INF/spring.factories 파일을 통해 자동 구성 클래스를 찾지만, Spring Boot 2.7 이후로는 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 파일..
https://sundaland.tistory.com/389 [ ▶ DeferredImportSelector ] DeferredImportSelector는 Spring Framework에서 구성 클래스를 동적으로 로딩하는 인터페이스인 ImportSelector를 확장한 인터페이스로, 일반 ImportSelector보다 더 나중에 실행되어 구성 클래스를 로딩할 수 있다. DeferredImportSelector는 스프링 컨텍스트가 초기화되는 과정에서 다른 빈이나 구성이 먼저 처리된 후에 실행된다. 이 특성 때문에 주로 프레임워크 확장, 모듈화된 구성, 또는 복잡한 로딩 순서가 필요한 경우에 사용된다. [ ▷ 주요 개념 및 사용 목적 ]ImportSelector는 구성 클래스를 동적으로 로드하는 기능을..
https://sundaland.tistory.com/69 [ ▶ @Import ] @Import 어노테이션을 사용하는 것은 Spring Framework에서 애플리케이션의 구성(Configuration) 메타데이터를 추가하는 방법 중 하나이다. 이 어노테이션을 통해 다양한 방식으로 구성 클래스를 가져와 애플리케이션 컨텍스트에 등록할 수 있다. @Import를 사용하는 방법은 크게 정적 방법과 동적 방법으로 나눌 수 있다. [ ▷ 정적 방법(Static Method) ] 정적 방법은 가장 기본적인 @Import 사용 방식으로, 한 개 또는 여러 개의 구성 클래스를 직접 명시한다. 이 방식은 컴파일 시점에 결정되므로 정적이라고 한다. 예를 들어, @Configuration 어노테이션이 붙은 Java 클래..
https://sundaland.tistory.com/383 [ ▶ @AutoConfigurationPackage ] @AutoConfigurationPackage는 스프링 부트에서 자동 구성과 관련된 패키지 스캐닝을 도와주는 어노테이션으로, 일반적으로 스프링 부트의 자동 구성 기능을 더욱 효율적으로 사용하기 위해 사용된다. 이 어노테이션은 스프링 부트의 자동 구성 메커니즘에서 중요한 역할을 한다. 주로 @EnableAutoConfiguration 또는 @SpringBootApplication과 함께 사용되며, 자동으로 패키지를 스캔하여 특정 컴포넌트들을 등록할 때 유용하다. @Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@..
https://sundaland.tistory.com/384 [ ▶ Project Classpath ]프로젝트의 클래스패스(Classpath)는 프로젝트가 실행될 때 JVM이 클래스, 리소스, 라이브러리를 찾기 위해 참조하는 경로이다. 클래스패스는 컴파일 시간과 실행 시간 모두에서 사용되며, 프로젝트의 빌드 시스템(Maven)과 IDE(STS4, IntelliJ) 설정에 따라 달라진다. [ ▷ 프로젝트의 클래스패스 ][ ▷ 로컬 파일 시스템 ]프로젝트 클래스패스는 주로 프로젝트의 특정 디렉토리와 외부 라이브러리(예: Maven 의존성 라이브러리)로 구성된다. 로컬 파일 시스템에서 클래스패스는 다음과 같은 요소들을 포함할 수 있다.소스 코드 디렉토리: src/main/java는 프로젝트의 소스 파일들이 위..
https://sundaland.tistory.com/382 [ ▶ @EnableAutoConfiguration ] @EnableAutoConfiguration 어노테이션은 스프링 부트(Spring Boot)의 핵심적인 기능 중 하나로, 애플리케이션에서 필요한 설정을 자동으로 구성해주는 역할을 한다. 스프링 부트 애플리케이션에서는 개발자가 일일이 설정 파일을 작성하지 않더라도, 다양한 스프링 라이브러리와 외부 라이브러리들을 자동으로 감지하고, 적절한 설정을 자동으로 수행하여 애플리케이션을 구동할 수 있도록 돕는다. 스프링 애플리케이션 컨텍스트의 자동 구성을 활성화하여, 필요한 빈들을 추측하고 구성하려 시도항다. 자동 구성 클래스들은 일반적으로 클래스패스(classpath)와 이미 정의된 빈들에 따라 적용..
https://sundaland.tistory.com/193 Spring Boot StarterSpring Boot Starter는 Spring Boot 프로젝트를 빠르고 쉽게 시작할 수 있게 해주는 종속성 관리 도구이다. Starter는 일반적으로 사용되는 라이브러리 또는 프레임워크를 묶음으로 제공하여 프로젝트 설정을 단순화하고, 개발자가 필요한 모든 종속성을 직접 추가하거나 관리할 필요 없이 빠르게 개발에 집중할 수 있게 한다. Spring Boot Starter는 Spring Boot의 핵심 컴포넌트 중 하나로, 특정 기능을 빠르게 시작하고 설정하는데 도움을 준다. Starter는 일종의 템플릿이며, 프로젝트에 필요한 의존성을 관리하고 설정한다.빠른 프로젝트 설정: Starter는 프로젝트 생성을 ..