生产者的CDI Ambigious依赖注入

时间:2017-12-12 08:52:51

标签: java dependency-injection cdi

我有一个jar,生成Logger:

@ApplicationScoped
public class Resources {
    @Produces
    public Logger produceLogger(InjectionPoint injectionPoint) {
        return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());
    }
}

jar在第二个jar中通过maven引用为依赖。在第二个我有@Inject记录器的类。对于某些类,注入似乎很好,但对于其他人,eclipse显示警告:

  

没有豆有资格注射到注射点[JSR-346§5.2.2]

警告显示的类的示例:

@Named("errorHome")
@SessionScoped
public class ErrorHome implements Serializable {
    private static final long serialVersionUID = 1L;

    @Inject
    Logger log;
    ...
}

但不在

public abstract class ListAbstraction<T> extends ListController<T> {
    @Inject
    Logger log;
    ...
}

两个罐子中都有beans.xml。 为什么我会接受注射警示?

更新

警告仅显示在带有CDI注释的类中。可能是不同范围的问题?

(我已删除第二个示例,其中显示警告,因为我复制了错误的代码。在该类中没有警告。)

0 个答案:

没有答案