【问题标题】:CDI - conditional installationCDI - 有条件的安装
【发布时间】:2010-06-24 12:56:16
【问题描述】:

我有几个应用程序范围的组件。根据我所处的环境,我想安装一个或另一个。在 JBoss Seam 中,我会使用 @Install(false),然后通过 components.xml 配置我想要的 bean。

在 CDI / WELD 中有类似的方法吗?

谢谢,

沃尔特

【问题讨论】:

    标签: java jakarta-ee cdi jboss-weld


    【解决方案1】:

    好吧,您始终可以使用生产者方法并根据您的某些配置决定要实例化哪个实现。请记住,在 CDI 中,xml 的数量被降至最低。

    所以,类似:

    @Produces
    public Component createComponent() {
       if (configuration.isSomething()) {
           return new ComponentImpl1();
       } else {
           return new ComponentImpl2();
       }
    }
    

    【讨论】:

    • 对,好吧,我想我记得皮特展示了这个例子。我认为这对我有用。
    • 我还有一个用例,我在想我会写一个扩展。当服务器启动时,我将确定是否要在那个时间点安装或注册该 bean。如果我不这样做,我将简单地从容器中删除该定义。所以,我想我会添加一个注释,指示何时安装它,如果不应该安装,则将其删除...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2014-11-04
    • 2011-03-02
    相关资源
    最近更新 更多