[SPRING] @Qualifier의 SpEL은 같은 bean을 참조합니다.
SPRING@Qualifier의 SpEL은 같은 bean을 참조합니다.
같은 bean의 다른 속성을 기반으로 해결되는 bean 참조를 삽입하는 데 관심이 있습니다.
@Autowired
@Qualifier("#{'prefix' + actualQualifier}")
private OtherBean otherBean
private String actualQualifier;
이것은 "actualQualifier"와 "otherBean"사이의 관계가 맞는지 확인합니다.
OtherBean 유형으로 구성된 많은 bean이 있습니다.
autowiring / injection이 시작되기 전에 "actualQualifier"에 값이 설정되어 있는지 확인할 수 있습니다.
현재 autowired되고있는 같은 bean에서 다른 속성 값 (JavaBean 의미에서)을 참조 할 방법을 찾을 수 없습니다.
해결법
-
==============================
1.AFAIK,이 작동하지 않습니다. SpEL은 둘러싼 클래스의 변수에 액세스 할 수 없습니다. 어쨌든 @Qualifier가 SpEL 표현식을 처리하지 않는 것 같습니다.
AFAIK,이 작동하지 않습니다. SpEL은 둘러싼 클래스의 변수에 액세스 할 수 없습니다. 어쨌든 @Qualifier가 SpEL 표현식을 처리하지 않는 것 같습니다.
몇 가지 테스트를 수행하고 SpEL 표현식을 @Qualifier 값으로 사용하는 방법을 찾지 못했습니다. Spring 포럼의이 페이지 (그리고 Spring의 오류 메시지)는 사실 @Qualifier가 String을 사용하고 SpEL 표현식을 평가하지는 않는다고 생각합니다.
내 결론은 그 길은 당신을 막 다른 길로 안내 할 것입니다.
이 다른 대답에서 제안한 것처럼, 나는 당신이 더 나은 선택기 콩을 사용하여 init 메서드에서 otherBean을 설정하는 것이 좋을 것 :
@Bean(initMethod="init") class MyBean { ... @Autowired private BeanSelector beanSelector; private OtherBean otherBean private String actualQualifier; public void init() { otherBean = beanSelector(actualQualifier); } ... }
beanSelector에 otherBean의 선택에 대한 모든 정보를 넣으십시오.
from https://stackoverflow.com/questions/29772418/spel-in-qualifier-refer-to-same-bean by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @PostFilter는 언제 실행됩니까? (0) | 2019.05.25 |
---|---|
[SPRING] 의존성에 대한 [org.springframework.social.twitter.api.Twitter] 유형의 적격 빈이 없음 (0) | 2019.05.25 |
[SPRING] 스프링 보안 : 폼 로그인 특수 문자 (0) | 2019.05.25 |
[SPRING] 스프링 소셜 페이스 북에 앱 액세스 토큰을 사용하여 공개 페이지를 쿼리 (0) | 2019.05.25 |
[SPRING] 같은 스프링 부팅 응용 프로그램에서 neo4j 및 cassandra 저장소를 구성하는 방법 (0) | 2019.05.25 |