В 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>
Как может инстанцировать двух экземпляров того же класса и инициализировать их с различными значениями полей?
есть несколько способов сделать это.
Например. use @New
private @Inject @New YourBean yb; private @Inject @New YourBean yb2;
Это заставляет контейнер создать новый экземпляр, независимо от того, какую область действия изначально имел компонент.
Другой способ - просто определить YourBean как имеющий @Dependent scoped (что, кстати, (в настоящее время) по умолчанию, если класс вообще не аннотирован).