2014-01-06 1 views
1

JBoss EAP 6.1에서 메일 세션을 구성했습니다. 나는이 같은 조회를 사용하고 스프링 (4)을 사용하고 있습니다 :Spring의 JNDI에서 하나 이상의 빈을 참조하는 방법은 무엇입니까?

<jee:jndi-lookup id="contactMailSession" 
       jndi-name="java:jboss/mail/Contact" 
       expected-type="javax.mail.Session" /> 

내가 JBoss 서버에 세 이상의 메일 세션을 추가하고, Spring XML 설정 파일에 세 더 조회를 추가 한 경우? 어떻게 한 콩을 다른 콩에 주입합니까? <jee:jndi-lookup ... /> 태그에 한정자를 추가 할 수 없습니다.

질문 :

<jee:jndi-lookup id="contactMailSession" 
       jndi-name="java:jboss/mail/Contact" 
       expected-type="javax.mail.Session" /> 

<jee:jndi-lookup id="signupMailSession" 
       jndi-name="java:jboss/mail/SignUp" 
       expected-type="javax.mail.Session" /> 

<jee:jndi-lookup id="userMailSession" 
       jndi-name="java:jboss/mail/User" 
       expected-type="javax.mail.Session" /> 

가 어떻게 이러한 autowire하기 것 :이한다면 어떨까요?

+0

당신은 봄 콩 프로파일을 찾아 볼 수 있습니다. 이것은 귀하의 질문에 대답하지 않을 수 있지만 단지 정보. 또한 3 개의 다른 문자열 인 경우에도 동일한 사례가 아니겠습니까? 이드를 통해 그들을 참조 할 것입니까? – Hrishikesh

답변

3

autowired중인 필드에 @Qualifier을 추가하면됩니다.이 값을 JNDI에서 찾은 의 id으로 설정하면됩니다. 예를 들어 서로 다른 프로필을 기반으로 종속성을 추가하려면

public class BeanThatNeedsContactMailSession { 

    @Autowired 
    @Qualifier("contactMailSession") 
    private Session mailSession; 

} 

그리고

public class BeanThatNeedsSignupMailSession { 

    @Autowired 
    @Qualifier("signupMailSession") 
    private Session mailSession; 

} 

관련 문제