2014-10-07 17 views
5

I ek açıklama kullanarak Bahar denetleyicisi Jndi kaynağı autowire nasıl bilmek istiyorum.autowire Jndi Kaynak Bahar

Şu anda

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
<property name="jndiName" value="my/service"/> 
</bean> 

herhangi bir yolu var mı, ben ek açıklama kullanarak aynı şeyi yapabilir kullanarak kaynak alabilir? @Resource (name = "my/service") gibi bir şey var mı?

+0

Size ulaşmak için aradıklarını belirsizdir enjekte bu yapılandırmayı kullanın. @Autowired kullanarak, Spring bağlamında herhangi bir fasulyeyi otomatikleştirebilirsiniz. Bir tanımlayıcı kullanmak istiyorsanız, o zaman sizin fasulye kimliğiniz bu amaca hizmet eder. Ancak, neden JNDI fabrikası fasulyesini otomatikleştirmek istediğinizden emin değilim. – Angad

+0

Bu sorunu çözdünüz mü? eğer evet, nasıl çözdün? – Xstian

cevap

2

Bir Jndi kaynak yönetmek

bahar yapılandırma

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context.xsd 
      http://www.springframework.org/schema/jee 
      http://www.springframework.org/schema/jee/spring-jee.xsd"> 

    <jee:jndi-lookup id="destination" jndi-name="java:/queue/inbound/jndiname" /> 

</beans> 

Sınıf

@Autowired 
private javax.jms.Destination destination; 
+0

Neden bir yorum yapmadan düşüş var? -.-' – Xstian

6
@Configuration 
public class Configuration { 
    @Bean(destroyMethod = "close") 
    public DataSource dataSource() { 
     JndiDataSourceLookup dsLookup = new JndiDataSourceLookup(); 
     dsLookup.setResourceRef(false); 
     DataSource dataSource = dsLookup.getDataSource("my/service");  
     return dataSource; 
    } 
}