2014-10-07 17 views
5

Tôi muốn biết cách tự động khai thác tài nguyên JNDI trong bộ điều khiển Spring bằng cách sử dụng chú thích.Tài nguyên Autowire JNDI trong Spring

Hiện nay tôi có thể lấy các tài nguyên sử dụng

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

Có cách nào, tôi có thể làm điều tương tự sử dụng chú thích? Một cái gì đó như @Resource (tên = "my/service")?

+0

Không rõ những gì bạn đang tìm kiếm để đạt được. Bạn có thể autowire bất kỳ bean trong bối cảnh Spring của bạn bằng cách sử dụng @Autowired. Nếu bạn muốn sử dụng mã định danh, thì id bean của bạn sẽ phục vụ mục đích đó. Tuy nhiên, tôi không chắc chắn lý do tại sao bạn muốn autowire bean nhà máy JNDI. – Angad

+0

bạn đã giải quyết vấn đề này chưa? nếu có, làm thế nào bạn giải quyết nó? – Xstian

Trả lời

2

tôi sử dụng cấu hình này để tiêm một nguồn tài nguyên JNDI

mùa xuân cấu hình

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

Lớp

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

Tại sao một downvote mà không có một bình luận? -.- ' – 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; 
    } 
} 
Các vấn đề liên quan