在Spring中,可以通过在xml conf中定义相应的bean来实例化任何类。对于同一类,使用不同的参数实例化一个bean也是可能的......

CDI中是否也具有此类功能,即是否可以使用不同的初始化参数创建同一类的不同实例?

是否有可能在不更改类的情况下创建bean。...我的意思是不添加注释?

添加

让我举一个例子。

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

如何实例化同一类的两个实例并用不同的字段值初始化它们?

最佳答案

据我所知,有两个选择:

  • 在不进一步了解用例的情况下,我假设您想为(模拟)测试或配置问题提供某种替代实现(例如,另一个OrderProvider的PaymentProvider)。规范本身对此提供支持,请查看@Alternative here(不要重复我最初的错误,而忘记激活beans.xml中的替代项)
  • 要获得Spring样式的XML配置,可以使用Seam 3 Config,它如上所述提供XML配置。顺便说一句,这已成为JSR 299的一部分,但由于任何原因已从规范中删除。
  • 09-30 14:28
    查看更多