BeanDefinitionRegistryPostProcessor
Spring에서 Bean을 동적으로 생성하는 방법 중 하나.
스프링에서는 보통 정적으로 Bean을 생성한다.
근데 DcmDatasource 같은 경우는 properties파일을 읽어다가 여러 개의 DcmDataSource Bean을 생성해야 한다. (configuration에서 dcm properties수가 몇개가 될 지 모르는 상황)
결국 동적으로 Bean을 생성해줘야하는 상황이다. 이럴 때 사용할 수 있다.
ex) configuration에 언급된 에이전트 개수 (DB A서버,DB B서버..) 만큼 datasource를 만들어야 하는 상황
샘플코드
BeanDefinitionRegistryPostProcessor를 사용하기 위해서는 인터페이스를 통해 구현 클래스를 개발하면 된다.
Override되어야 하는 함수는 다음과 같다.
- postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanFactory): BeanFactory를 이용하여 빈 정보를 등록하는 경우 이용
- postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory): BeanDefinitionRegistry를 이용하여 빈 정보를 등록하는 경우 이용
=> 사용자가 Bean Definition을 커스터마이징 할 수 있게끔 함.
모든 Definition들이 로드된 이후에 스프링의 startup 프로세스에 의해 호출된다.
아직 어떠한 빈도 초기화되지 않은 상태
참조
https://csy7792.tistory.com/315
https://ysjee141.github.io/blog/server-side/BeanDefinitionPostProcessor/
'Java > Spring Framework' 카테고리의 다른 글
RestClient 알아보기 (0) | 2024.08.30 |
---|---|
Annotation 정리 (0) | 2022.10.30 |
Auto Configuration (0) | 2022.10.30 |