minOS

스프링 컨테이너와 스프링 빈(4) 본문

TIL/김영한의 스프링 핵심 원리

스프링 컨테이너와 스프링 빈(4)

minOE 2024. 3. 6. 18:10
728x90

스프링 빈 설정 메타 정보 - BeanDefinition

새로운 형식의 설정 정보가 추가되면 XxxBeanDefinitionReader를 만들어서 "BeanDefiniton"을 생성하면된다.

BeanDefiniton 정보
- BeanClassName : 생성할 빈의 클래스 명 (자바 설정처럼 팩토리 역할의 빈을 사용하면 없음)
- factoryBeanName : 팩토리 역할의 빈을 사용할 경우 이름 ex) appConfig
- factorymethodName: 빈을 생성할 팩토리 메서드 지정 ex) memberService
- Scope: 싱글톤(기본값)
- lazyInit: 스프링 컨테이너를 생성할 때 빈을 생성하는 것이 아니라 , 실제 빈을 사용할 때 까지 최대한 생성을 지연처리 하는지 여부
- InitMethodName: 빈을 생성하고, 의존관계를 적용한 뒤에 호출되는 초기화 메서드 명
- DestroyMethodName : 빈의 생명주기가 끝나고 제거하기 직전에 호출되는 메서드 명
- Constructor arguments,Properties: 의존관계 주입에 사용(자바 설정 처럼 팩토리 역할의 빈을 사용하면 없음)


정리
- BeanDefiniton을 직접 생성하여 스프링 컨테이너에 등록할 수도 있다.(실무에서 사용할 일 거의 없음)
- BeanDefiniton은 스프링이 다양한 형태의 설정 정보(AnnotationConfigApplicationContext,GenericXmlApplicationContext 등)를 BeanDefiniton으로 추상화하여 사용한다.

 

728x90