스프링은 메타정보를 설정하는 Bean Definition이 추상화가 되어있어 다양한 설정형식을 지원할 수 있다.
- 스프링컨테이너는 BeanDefinition에만 의존하여, 자바코드인지 xml설정인지에는 의존하지않는다.
- 스프링컨테이너는 추상화된 BeanDefinition을 바탕으로 메타정보를 설정한다.
BeanDefinition 정보[메타정보]
- Bean Class Name : 생성할 빈의 클래스 명
- factory Bean Name : 팩토리 역할의 빈을 사용할 경우 이름 (appConfig)
- factory Method Name : 빈을 생성할 팩토리 메서드 지정 ex)member Service
- Scope : 싱글톤(기본값)
- lazyInit : 스프링 컨테이너를 생성할 때 빈을 생성하는 것이 아니라, 실제 빈을 사용할 떄 까지 최대한 생성을 지연처리 하는지에 대한 여부
- InitMethodName : 빈을 생성하고 의존관계를 적용한 뒤 호출되는 초기화 메소드 명
- DestroyMethodName : 빈의 생명주기가 끝나서 제거하기 직전에 호출되는 메소드 명
- Constructor arguments, Properties : 의존관계 주입에서 사용되는 정보.
- Bean Definition을 직접 생성해서 스프링컨테이너에 등록할 수도 있다.
'SpringBoot' 카테고리의 다른 글
Singleton pattern (0) | 2021.02.17 |
---|---|
SpringBoot] BeanFactory, ApplicationContext (0) | 2021.02.17 |
SpringBoot]스프링 컨테이너와 스프링 빈 (0) | 2021.02.17 |
IoC, DI, 컨테이너 (0) | 2021.02.17 |
스프링 : 객체지향 프로그래밍 설계원칙 [SOLID] (0) | 2021.02.16 |