Container(컨테이너)
Last updated
Was this helpful?
Last updated
Was this helpful?
스프링 컨테이너는 스프링에서 애플리케이션을 구성하는 여러 빈(Bean)들을 관리하는 공간을 말한다.
스프링 컨테이너를 언급할 때는 빈 팩토리(Bean Factory
)와 애플리케이션 컨텍스트(Application Context
) 크게 두 가지로 나눌 수 있다.
스프링 컨테이너의 최상위 인터페이스
스프링 빈을 관리하고 조회하는 역할
getBean()
제공
BeanFactory
기능을 모두 상속 받아 제공
그 외에 아래를 포함한 많은 기능을 제공
MessageSource
국제화 기능
EnvironmentCapable
환경변수 기능
ApplicationEventPublisher
이벤트를 발행하고 구독하는 모델을 편리하게 지원
ResourceLoader
파일/클래스패스/외부 등에서 리소스를 편리하게 조회
스프링 컨테이너
-
-
-
-
-
-
-
-
new AnnotationConfigApplicationContext(AppConfig.class)
로 config 정보를 넘겨주면서 구성 정보를 지정해준다.
AppConfig.class
가 구성 정보에 해당
AppConfig
를 통한 예시)스프링 컨테이너
memberService
MemberServiceImpl@x01
orderService
OrderServiceImpl@x02
memberRepository
MemoryMemberRepository@x03
discountPolicy
RateDiscountPolicy@x04
스프링 컨테이너는 파라미터로 넘어온 클래스 정보를 사용해 스프링 빈 등록
빈 이름은 메서드 이름을 사용하며, @Bean(name="memberServiceName")
과 같이 다른 이름을 부여할 수 있다.
항상 다른 이름을 부여해야 하며, 중복 될 경우 버전에 따라 덮어 쓰거나 오류가 발생할 수 있다.
스프링 컨테이너에서 설정 정보를 참고해서 의존 관계를 주입(DI)하게 된다.
참고자료