使用Guava EventBus进行条件订阅

时间:2012-10-05 09:40:20

标签: java guava

我正在使用我的应用程序中的Guava EventBus将数据(例如Double)从一个或多个数据创建者分发到数据使用者。

我知道在我的消费者类中,我需要用@Subscribe注释我的数据处理程序。有没有办法让这个订阅有条件?例如,

@Subscribe {newValue > 0.0} public void valueUpdated(Double newValue)

我可以在valueUpdated方法中添加检查,但有没有办法阻止EventBus调度我的订阅者不感兴趣的值?

是否有类似于EventBus的产品可以提供这种功能?

1 个答案:

答案 0 :(得分:1)

Spring Expression Language (SpEL)可能会有所帮助。

另外:在检查EventBus之后,我认为它是基于类型的调度,无法应用基于条件的调度。如果您坚持使用表达式语言,您可以将其作为路易斯评论添加到订阅者中。但表达语言是为灵活而非速度而设计的。