在春天的这是可能的实例的任何一类的定义相对应的豆xml conf.这也是可能的实例更然后一个豆对于同一类不同的参数。....

是这样的特征,在土发委会,即是否有可能创造不同情况下的相同类有不同的初始化参数?

它还可能创造一个豆,而不改变类。...我的意思是没有添加注解?

加入

让我让一个例子。

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

如何可以实例的两个实例相同的级和初始化他们与不同领域的价值观?

有帮助吗?

解决方案

两个选项我们可以看到:

  • 没有进一步解你的用例,我假设你要么想提供一些备选的实现(模型)测试或配置问题(说另一个PaymentProvider一OrderService).这是支持通过该规范本身,有一种看看 @Alternative 在这里, (并且不要重复我最初的错误,并要忘记替代办法激活beans.xml)

  • 得到一个弹簧式XML配置,可以使用 缝3Config, ,其中提供了XML配置只是作为说明。顺便说一句,这也是一部分JSR299,但是已经从规范无论出于何种原因。

其他提示

有几个方法可以做到这一点。

E.g。使用@New

私人@Inject @New YourBean YB; 私人@Inject @New YourBean YB2;

这迫使容器中创建一个新的实例,无论豆原本有什么范围。

另一种方法是简单地定义YourBean为@Dependent作用域(这是顺便说一句(目前)如果一个类不是在所有注释的默认值)。

可以很容易地使用生产商的方法,如果你有多个实例,应该由一个方法使用CDI限定符产生,以区分不同类型的实例。

您也可以使用Seam配置做到这一点春天的方式,但我认为制作方法是这样做的更优雅的方式。 取决于你的使用情况下,存在另一种选择是@Alternative。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top