728x90
@Configuration과 ApplicationContext는 Spring의 의존성 주입 및 빈 관리 시스템의 핵심 구성 요소입니다.
@Configuration
@Configuration은 클래스가 하나 이상의 @Bean 메서드를 선언한다는 것을 나타내는 데 사용되는 어노테이션입니다. 이 어노테이션은 Spring 컨테이너의 빈 정의를 정의하는 데 사용됩니다.
클래스에 @Configuration 어노테이션이 붙으면
- 빈 정의의 소스 역할을 합니다.
- XML 기반 구성과 달리 Spring 컨테이너의 프로그래밍 방식 구성을 가능하게 합니다.
주요 특징:
- @Configuration 클래스는 @Bean 어노테이션이 붙은 메서드를 포함할 수 있습니다.
- @Component로 메타 어노테이션이 되어 있어 컴포넌트 스캐닝에 의해 자동으로 감지될 수 있습니다.
ApplicationContext
ApplicationContext는 Spring의 IoC(제어의 역전) 컨테이너의 중심 인터페이스입니다. Spring 컨테이너를 나타내며 빈의 인스턴스화, 구성 및 조립을 담당합니다.
주요 책임:
- 빈의 생명주기 관리
- 의존성 주입 제공
- 빈 스코프 처리 (예: 싱글톤, 프로토타입)
@Configuration과 ApplicationContext 함께 사용하기
@Configuration 클래스를 ApplicationContext와 함께 사용하려면:
- @Configuration 어노테이션이 붙은 클래스를 생성합니다.
- 클래스 내에 @Bean 메서드를 정의합니다.
- AnnotationConfigApplicationContext를 사용하여 ApplicationContext를 인스턴스화합니다.
@Configuration public class AppConfig { @Bean public MyService myService() {
return new MyServiceImpl(); } }
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
MyService service = context.getBean(MyService.class);
이 설정을 통해 Spring은 빈과 그 의존성을 관리할 수 있으며, 애플리케이션을 구성하는 유연하고 강력한 방법을 제공합니다.
728x90
'SpringBoot' 카테고리의 다른 글
@Bean의 의미와 사용 방법 (0) | 2025.03.05 |
---|---|
@RestController 애너테이션 (0) | 2025.03.04 |
Thymeleaf (2) | 2025.03.04 |
SpringBoot에서 사용할만한 모니터링 도구 비교 (0) | 2025.03.04 |