我正在使用我的应用程序中的Guava EventBus将数据(例如Double
)从一个或多个数据创建者分发到数据使用者。
我知道在我的消费者类中,我需要用@Subscribe
注释我的数据处理程序。有没有办法让这个订阅有条件?例如,
@Subscribe {newValue > 0.0} public void valueUpdated(Double newValue)
我可以在valueUpdated
方法中添加检查,但有没有办法阻止EventBus
调度我的订阅者不感兴趣的值?
是否有类似于EventBus的产品可以提供这种功能?
答案 0 :(得分:1)
Spring Expression Language (SpEL)可能会有所帮助。
另外:在检查EventBus之后,我认为它是基于类型的调度,无法应用基于条件的调度。如果您坚持使用表达式语言,您可以将其作为路易斯评论添加到订阅者中。但表达语言是为灵活而非速度而设计的。