【问题标题】:CDI do i need producer for objects with default constructor?CDI 我是否需要具有默认构造函数的对象的生产者?
【发布时间】:2015-11-03 09:20:57
【问题描述】:

在我的项目中,我使用了weld se。我在将"GroupedExchangeAggregationStrategy" 注入我的一个构造函数时遇到问题。这个对象有一个默认的无参数构造函数。 Beans.xml 设置为发现“全部”。但我得到unsatisfied dependency for type GroupedExchangeAggregationStrategy

我需要创建一个生产者来返回new GroupedExchangeAggregationStrategy()吗?或者还有什么可能导致问题?

(该项目已经使用了许多 @Produces 和限定符。所以 cdi 的东西通常可以工作。)

【问题讨论】:

    标签: java cdi jboss-weld weld


    【解决方案1】:

    你是对的。

    如果您需要注入第 3 方类(例如在您的情况下来自 Apache Camel),最好的方法是创建一个 Producer method。默认范围为@Dependent

    【讨论】:

    • 那太糟糕了,但是谢谢。我来自 google guice injection,guice 能够使用 0-arg 构造函数注入所有类。
    • @dermoritz 请纠正我我误解了你,但 Guice 在这里基本上是一样的。因为还是要写一行bind(GroupedExchangeAggregationStrategy),或者写一行producer方法。 CDI 在这里也不例外。
    • 不,如果我直接注入“GroupedExchangeAggregationStrategy”,如果我想注入 AggregationStrategy,那么我必须绑定。
    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2017-07-15
    • 2012-07-01
    • 2015-12-05
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多