1
我relativly新EE/CDI为DI所以也许你们中的一个可以为我提供一些提示我的问题:DI与CDI和第三方类:避免构造经商逻辑多次调用每个代理建设
我有第三方课,我想注入其他豆类。在春天只需要一些<bean>
声明,它完成了。使用CDI现在需要一个工厂类:
public class XProducer {
@Produces
@ApplicationScoped
public X createX(){
return new X();
}
}
不幸的是X`s构造函数调用相当昂贵的商业逻辑,每一个代理通过CDI创建这就是所谓的,但我不能改变X的行为时。这给我留下了以下选项,我真的不喜欢:
- 包装X中的一些丑陋的
Holder
-class, - 创造一些门面和有delgate方法
X
是否有任何其他选择离开?
好的,使用EJB然后:)我最初拒绝'@ Singleton'由于容器管理的并发造成瓶颈具有忽略它可以用'@ConcurrencyManagement(BEAN)'被禁用。 –
为什么EJB?如果你使用'@ javax.inject.Singleton'其从JSR-330,而不是EJB。 –