2014-10-03 6 views
0

Я хочу представить CDI для проекта exisitng. В настоящее время мы создаем новые объекты внутри цикл какВвод новых объектов в цикл с CDI (Weld)

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

Теперь, если я инъекционный контекст, как

@Inject Context context; 

Я получаю то же экземпляр каждый раз.

Мне интересно, есть ли какой-либо способ, доступный в CDI для создания нового контекста внутри цикла?

+0

Зачем вам это нужно? Вы пытаетесь злоупотреблять механизмом инъекции зависимостей. –

+0

Привет, Адриан, вы думаете, что это будет дизайн. Хотя это требование использования, но прежде чем выбрать его, я определенно хотел бы увидеть, является ли это своего рода анти-шаблон? Спасибо, Raman – Raman

ответ

2

До тех пор, пока вы не используете специальные области, вы можете использовать

@Inject 
Instance<B> bProvider; 

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

и вы получите новый «B» каждый раз. Выезд this gist.

+0

Чтобы уточнить, 'B' должен быть аннотирован как' @ Dependent' или вообще не аннотирован в EE 6/7 (в 7 с полным обнаружением бобов) –

Смежные вопросы