Guava EventBus使用

433 阅读1分钟

EventBus是Goole实现的发布订阅模型,实现了观察者模式。以下面例子介绍下其使用方法:

我们现在要发布发布订阅消息:

(1)引入依赖

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>19.0</version>
</dependency>

(2)创建订阅者-

public class Observer <T>{

    @Subscribe
    public void func1(String value){
        System.out.println("我是" + value.getClass() + ",收到了数据:" + value);
    }
}

(3)创建EventBus并发布消息,订阅者订阅

public class EventBusTest {
    public static void main(String[] args) {
        // 创建EventBus
        EventBus eventBus = new EventBus();

        // 订阅者订阅消息
        Observer<String> myObserver = new Observer<String>();
        eventBus.register(myObserver);

        // 发布消息
        eventBus.post("小七月"); // 最终只有这个消息被处理了
        eventBus.post(7); // 这个消息没有被处理,因为只有String类型的消息被订阅了
    }
}

image.png

Guava中文翻译文档:ifeve.com/google-guav…