2014-10-03 81 views
0

我想介紹CDI到現有項目。目前,我們正在像在CDI中注入新的對象for循環(焊接)

Context context; 
for(String string: listofstrings){ 
context = new Context(); 
// do some operations with string. 
// set outcomes of above operation in context. 
} 

內創建新對象的for循環現在,如果我注射語境作爲

@Inject Context context; 

我每次都得到相同的實例。

我想知道是否有任何方式可用CDI在循環內創建新的上下文?

+0

爲什麼你需要那個?您正試圖濫用依賴注入機制。 – 2014-10-03 19:35:44

+0

嗨艾德里安,你認爲這將是一種設計方法。雖然它是一個用例要求,但在選擇它之前,我一定會想看看它是否是一種反模式?謝謝拉曼 – Raman 2014-10-04 19:34:08

回答

2

只要你不使用特殊的範圍,你可以使用

@Inject 
Instance<B> bProvider; 

... 
B b = bProvider.get(); 

,你會得到一個新的「B」每次。檢出this gist

+0

爲了澄清,'B'必須註釋爲'@ Dependent'或根本沒有在EE 6/7中註解(7中的所有bean發現) – 2014-10-04 13:37:01