前言
EventBus是一种基于注解和反射的Publisher/Subscriber(发布/订阅者)事件总线
原理分析
发布者通过EventBus发布事件,订阅者通过EventBus订阅事件。当发布者发布事件时,订阅该事件的订阅者的事件处理方法将被调用

如上图:
Publisher(消费者)通过调用EventBus的post()方法抛出事件,EventBus基于事件通过发射找到相应的处理器(订阅者)执行
1,EventBus的角色,在此处eventBus主要起到线程之间传递数据的作用,其中有一个方法register(),会对传入的对象进行处理,将含有@Subscriber注解的将方法存入到一个map集合中,而这个map最终可以看成是:消息处理总线
2,每一个含有@Subscriber注解的方法相当于一个handler,通过方法的形参,区分不同的handler被调用
3,Publisher(发布者)通过调用post()方法,根据传入的实参,通过反射的方式找到相应的处理器并进行调
关于
基本使用:
第一步:添加maven依赖
com.google.guava
guava
19.0
第二步:定义消息总线,调用register()初始化EventBus和Handler
--通过的方式,将消息总线交给spring-ioc容器进行管理
@Service
public class SyncDataTask {
private EventBus eventBus;
private static SyncDataTask instance;
public static SyncDataTask getInstance() {
return instance;
}
public SyncDataTask(List