【发布时间】:2015-07-03 13:35:01
【问题描述】:
我有一个无状态的 EJB,其中包含应该注入的多个 JNDI 资源:
@Stateless(name = "QueueDispatcher")
public class QueueDispatcher {
@Resource(name = "jms/syncQueue1")
private Queue queue1;
@Resource(name = "jms/syncQueue2")
private Queue queue2;
...
private List<Queue> queueList;
@PostConstruct
public void init() {
//Move injected queues into arraylist...
queueList = new ArrayList<Queue>();
if(queue1 != null){ queueList.add(queue1); }
if(queue2 != null){ queueList.add(queue2); }
...
}
}
我当前的实现使用多个字段来接收注入的资源,然后将它们移动到一个集合中以供后续使用。
但是,这段代码很难看,队列的数量应该是动态的。当我必须增加队列数量时,我不想在多个地方更改代码,而是简单地添加单个配置行/注释。
有没有办法配置无状态bean,以便将资源直接注入到列表中?我正在使用 EJB 3.0。
【问题讨论】:
标签: dependency-injection resources ejb jndi