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。 –