EventBus简介
作用
EventBus是Guava提供的一个轻量级发布订阅/观察者实现,api简单容易上手,可以快速实现事件监听与发布订阅。
使用
如图,被@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均基于反射)。
这里有一个同类工具性能对照:
使用
不同属性名的属性映射配置见 orika-docs。
同类工具对比见 常见Bean映射工具分析评测及Orika介绍