2014-01-06 23 views
1

我在JBoss EAP 6.1上配置了一個郵件會話。我使用Spring 4,我使用這樣的查詢:如何在Spring中引用JNDI中的多個bean?

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

如果我增加了三個郵件會話JBoss服務器上和Spring XML配置文件中增加了三個查找?我將如何將一個bean注入另一個?我無法將限定符添加到<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" /> 

我怎麼會自動裝配這些?

+0

你可以看一下春豆紋,如果你想添加基於不同的配置文件的依賴性。這可能不會回答你的問題,但只是爲了獲取信息。另外,如果它是3個不同的字符串,這不會是相同的情況嗎?你可以通過id來引用他們嗎? – Hrishikesh

回答

3

您應該可以將@Qualifier添加到正在自動裝配的字段中 - 將該值設置爲在JNDI中查找的Sessionid。例如:

public class BeanThatNeedsContactMailSession { 

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

} 

而且

public class BeanThatNeedsSignupMailSession { 

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

} 

等等

相關問題