微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-ee – 如何为一个类实例化多个CDI / Weld bean?

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>

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

解决方法

我可以看到两个选项:

>如果不进一步了解您的用例,我假设您要么为(模拟)测试或配置问题提供一些替代实现(比如说OrderService的另一个PaymentProvider).这是由规范本身支持,看看@Alternative here(不要重复我的初始错误,忘记激活beans.xml中的替代品)
>要获得Spring样式的XML配置,可以使用Seam 3 Config,它提供了与配置相同的XML配置.顺便说一句,这是JSR 299的一部分,但无论出于何种原因,都已从规范中删除.

原文地址:https://www.jb51.cc/java/120785.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐