как инстанцировать более затем одного боба CDI/сварки для одного класса?

В Spring было возможно инстанцировать любого класса путем определения соответствующего боба на xml конференции. Было также возможно инстанцировать более затем одного боба для того же класса с различными параметрами.....

Такие функции в CDI также, а именно, действительно ли возможно создать различные экземпляры того же класса с различными параметрами инициализации?

Также возможно создать боб, не изменяя класс.... Я имею в виду, не добавляя аннотацию?

ДОБАВЛЕННЫЙ

Позвольте мне сделать пример.

<bean id="someBean1" class="org.mm.MyBean">
    <property name="x" value="xx"/>
    <property name="y" value="yy"/>
    <property name="z" value="zz"/>       
</bean>
<bean id="someBean2" class="org.mm.MyBean">
    <property name="x" value="other value"/>
    <property name="y" value="yy2"/>
    <property name="z" value="zz2"/>       
</bean>

Как может инстанцировать двух экземпляров того же класса и инициализировать их с различными значениями полей?

6
задан skaffman 19 August 2010 в 08:48
поделиться

1 ответ

есть несколько способов сделать это.

Например. use @New

private @Inject @New YourBean yb; private @Inject @New YourBean yb2;

Это заставляет контейнер создать новый экземпляр, независимо от того, какую область действия изначально имел компонент.

Другой способ - просто определить YourBean как имеющий @Dependent scoped (что, кстати, (в настоящее время) по умолчанию, если класс вообще не аннотирован).

2
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: