Java 具有相同接口的两个bean上的Spring@EventListener注释
我正在尝试使用Spring@EventListener发布和处理事件。我有一个接口,它声明了负责处理事件的方法,我有两个不同的处理程序来实现这个接口 接口:Java 具有相同接口的两个bean上的Spring@EventListener注释,java,spring,event-listener,Java,Spring,Event Listener,我正在尝试使用Spring@EventListener发布和处理事件。我有一个接口,它声明了负责处理事件的方法,我有两个不同的处理程序来实现这个接口 接口: public interface Handler { void handle(EventDto eventDto); } 处理程序如下所示: 处理程序#1 处理程序#2 我面临的问题是处理程序2的验证程序从未被调用(@eventValidator.isForHandler2) 但是,会调用第一个处理程序的验证程序,但第二个处理程序
public interface Handler {
void handle(EventDto eventDto);
}
处理程序如下所示:
处理程序#1
处理程序#2
我面临的问题是处理程序2的验证程序从未被调用(@eventValidator.isForHandler2)
但是,会调用第一个处理程序的验证程序,但第二个处理程序会接管该控件并尝试处理该事件。很明显,它之所以失败,是因为它无法处理它的事件。即使针对第二个处理程序的事件调用了验证器,它也肯定会失败
我试图删除接口并使处理程序独立(没有实现任何公共功能)。这有帮助。但是,为什么它不能在同一个界面上工作呢?这可能是一个与Spring相关的bug吗
@Async
@EventListener(condition = "@eventValidator.isForHandler1(#eventDto)")
public void synchronizeChannel(EventDto eventDto) {
}
@Async
@EventListener(condition = "@eventValidator.isForHandler2(#eventDto)")
public void synchronizeChannel(EventDto eventDto) {
}