properties 에 따른 @Qualifier(${variable}) 처리
JAVA/SpringBatch2020. 5. 27. 20:14
properties에 따라서 Injection해야하는 Bean을 변경해야 했습니다
물론 Profile을 통해서 Bean 등록을 바꾼다던지 여러 방법이 있겠지만
프레임워크 엔진에는 구현체가 여러개가 있고
사용자가 선택해서 쓸수 있도록 제공하기 위해 Profile을 통해서는 애매하여
@Qualifier에 변수를 적용하여 처리를 시도해봤습니다.
@Autowired
@Qualifier("${user.handler:simpleHandler}")
user.handler에 bean명이 설정되어있으면 설정된 bean값을 쓰고 아니면 기본값인 simpleHandler Bean을 주입하길 원했지만 동작하지 않았습니다
(@ComponentScan이나 @ImportResource 도 다 변수가 적용됬는데 @Qualifier는 동작을 안했습니다..;;)
그래서 어떻게 처리를 할까 고민 하다
기본으로 돌아가서 ApplicationContext.getBean()을 활용하는 방법으로 일단 적용해두었습니다.
@Value("${user.handler:simpleHandler}")
String handlerBeanName;
@PostConstruct
private void postConstruct() {
this.handler = applicationContext.getBean(handlerBeanName);
}
추후 @Qualifier는 어떤 단계에서 어떤방식으로 처리하는지 봐야할것 같습니다.
'JAVA > SpringBatch' 카테고리의 다른 글
[SpringBatch] Step 커스텀 트랜잭션 처리 (0) | 2020.06.18 |
---|---|
[SpringBatch] @ConfigurationProperties 이용한 데이터소스 주입 관련 (0) | 2020.04.28 |
SpringBatch에 external Configuration Class 검토-2 (0) | 2020.04.23 |
SpringBatch에 external Configuration Class 검토 (0) | 2020.04.10 |
org.springframework.batch.core.launch.NoSuchJobException: No job configuration with the name [longJob] was registered (0) | 2020.04.02 |
댓글()