EventBus简介

作用
EventBus是Guava提供的一个轻量级发布订阅/观察者实现,api简单容易上手,可以快速实现事件监听与发布订阅。

使用
常用工具介绍EventBus、Orika

如图,被@Subscribe注解修饰的方法所在的Class可作为Listener,为EventBus对象注册Listener对象,之后即可通过EventBus传递消息。

更多使用细节见 google-guava-eventbus

注意事项

1. Beta方案
EventBus方案在guava中被标记为@Beta方案,目前(2019/11/26)尚未有稳定版本,使用时如果guava版本发生变化需要留意api的变化。

2. Subscribe的参数类型
EventBus会根据Listener的参数类型向具有相同参数类型的Subscribe发送消息。这意味着EventBus.post方法的参数类型需要与@Subscribe注解的目标方法的参数类型保持一致。

Orika简介

作用
Orika是一个轻量级JavaBean映射工具,相比于同类的工具(dozer, spring BeanUtils),具有api更简单、配置更灵活、性能更优的优点。

其主要优点是可以指定不同class的对象以及不同的属性进行属性拷贝,对于对象类型、集合类型、嵌套对象的属性也有比较好的支持。由于其拷贝是在字节码层面完成,性能相对较高(dozer与spring BeanUtils均基于反射)。

这里有一个同类工具性能对照:
常用工具介绍EventBus、Orika

使用
常用工具介绍EventBus、Orika
不同属性名的属性映射配置见 orika-docs。

同类工具对比见 常见Bean映射工具分析评测及Orika介绍

相关文章: