【发布时间】:2018-07-31 20:28:48
【问题描述】:
我有一个抽象超类:
public abstract class A<T extends Other> extends B {...}
用@ViewScoped 和@Named 定义的另一个类正在扩展A:
public class C extends A<OtherSub> implements Serializable {...}
到目前为止,这没有问题。
现在我想在超类 A 中添加观察者方法来通用处理 CDI 事件,例如:
public void entityCreated(@Observes(notifyObserver = Reception.IF_EXISTS) @Created EntityChangedEvent event) {...}
但是部署这个wildfly会在部署过程中抛出异常:
WELD-000404:条件观察者方法不能由 @Dependent 范围 bean 声明:[BackedAnnotatedMethod] public A.entityCreated(@Observes @Created EntityChangedEvent)
我知道我可以在没有 notifyObserver 条件的情况下创建观察者,但这会产生其他 bean 将被创建并在 CDI 事件时通知的效果,我想阻止这种情况。
有没有办法在泛型超类中使用notifyObserver 条件?或者我是否需要在没有该条件的情况下分别在具体子类中实现它?
【问题讨论】: