2014-10-07 14 views
5

Chciałbym wiedzieć, jak automatycznie wyposażyć zasoby JNDI w kontroler Spring za pomocą adnotacji.Źródło autodire JNDI na wiosnę

Obecnie można odzyskać zasobu używając

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

Czy jest jakiś sposób, mogę zrobić to samo przy użyciu adnotacji? Coś takiego jak @Resource (name = "my/service")?

+0

Nie jest jasne, czego szukasz do osiągnięcia. Możesz zautomatyzować dowolny komponent w swoim wiosennym kontekście używając @Autowired. Jeśli chcesz użyć identyfikatora, to służy temu identyfikator twojej komórki. Jednak nie jestem pewien, dlaczego chcesz zarchiwizować komponent bean JNDI. – Angad

+0

Czy rozwiązałeś ten problem? jeśli tak, jak go rozwiązałeś? – Xstian

Odpowiedz

2

używam takiej konfiguracji, aby wstrzyknąć zasobu JNDI

sprężyny config

<?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> 

Class

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

Dlaczego głosowanie bez komentarza? "-.-" – 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; 
    } 
}