覆盖子类中的@Observes限定符

时间:2017-05-12 08:45:42

标签: java-ee cdi observable qualifiers

我观察某些课程的事件。

@Stateless
public class MyBean {
    public void process(@Observes Node) {
        // some logic
    }
}

现在我想创建子类,它只能用限定符捕获Node个事件。

@Stateless
public class MySubBean extends MyBean {
    @Override
    public void process(@Observes @MyQualifier Node) {
        // some logic
    }
}

但是MySubBean仍会获得所有Node个事件,并且没有限定符。同时从@Observes删除@MyQualifierMySubBean并不会改变任何内容 - 仍会调用方法。

根据doc

  

观察者方法由bean子类继承。

这很棒,但是有没有选项可以覆盖它并在超类中观察具有不同限定符的事件?

我正在使用WildFly 10.1。

1 个答案:

答案 0 :(得分:0)

如果您想要替换超类,可以尝试CDI专业化。这样,只应该考虑子类。

http://docs.jboss.org/cdi/spec/2.0/cdi-spec.html#specialize_session_bean