有没有一个好的轻量级Java框架提供发布/订阅模式?
一些理想的特点:
- 支持泛型
- 注册多个订阅者到发布者
- API主要是接口和一些有用的实现
- 纯内存,不需要持久性和事务保证。
我知道JMS,但那对我的需求来说太过头了。发布/订阅数据是对文件系统进行扫描的结果,扫描结果被馈送到另一个组件进行处理,然后再被馈送到另一个组件进行处理,以此类推。
编辑: 所有这些操作都在同一个进程中完成。来自beans的PropertyChangeListener并不能完全胜任此任务,因为它报告的是属性的更改,而不是发布特定的项目。我可以通过具有“上次发布对象”属性的强制转换使ProprtyChangeListener起作用,从而发布对象。PropertyChangeListeners不支持泛型,并且深入了解属性更改语义,而不是纯粹的发布/订阅。java.util Observer/Observable模式是很好的选择,但Observer是一个具体类。