概述
一、简介
EventBus是一个基于发布订阅的事件总线,在Java和Android里都可以使用。
二、使用
1.引入pom
org.greenrobot
eventbus
3.1.1
2.定义事件监听类
@Component
@Slf4jpublic classEventListener {
@Subscribepublic voidonMessageEvent(String event) {
log.info("Subscribe message:{}", event);
}
}
3.EventBusConfig
@Configurationpublic classEventBusConfig {
@BeanpublicEventBus eventBus(){return newEventBus();
}
}
4.EventHandler
@Component
@Slf4jpublic classEventHandler {
@AutowiredprivateEventBus eventBus;
@AutowiredprivateEventListener eventListener;
@PostConstructpublic voidinit() {
eventBus.register(eventListener);
}
@PreDestroypublic voiddestroy() {
eventBus.unregister(eventListener);
}public voideventPost(){
eventBus.post("test");
log.info("post event");
}
}
5.测试类
@RunWith(SpringRunner.class)
@SpringBootTestpublic classEventBusTest {
@AutowiredprivateEventHandler eventHandler;
@Testpublic voidpostEvent(){
eventHandler.eventPost();
}
}
6.运行结果
2019-11-01 22:33:24.657 INFO 6656 ---[ main] com.sww.bizhi.eventbus.EventListener : Subscribe message:test2019-11-01 22:33:24.671 INFO 6656 --- [ main] com.sww.bizhi.eventbus.EventHandler : post event
三、自定义事件
上面的例子,我们发送和接收的都是string,如果我想event是个bean,怎么操作?
1.添加MessageEvent类
@Data
@Builderpublic classMessageEvent {privateInteger id;privateString name;
}
2.修改EventHandler里的eventPost方法(红色字体部分)
public voideventPost(){
eventBus.post(MessageEvent.builder().id(1).name("test").build());
log.info("post event");
}
3.修改EventListener类里的onMessageEvent方法(红色字体部分)
@Subscribepublic voidonMessageEvent(MessageEvent event) {
log.info("Subscribe message:{}", event);
}
4.运行测试类,查看结果
2019-11-01 22:53:24.273 INFO 2252 --- [ main] com.sww.bizhi.eventbus.EventListener : Subscribe message:MessageEvent(id=1, name=test)2019-11-01 22:53:24.278 INFO 2252 --- [ main] com.sww.bizhi.eventbus.EventHandler : post event
四、最后
本篇初步介绍了如何在springboot里使用eventbus,下一篇文章将介绍如何集成spring-boot-starter-guava-eventbus
另外,本篇教程使用了lombok插件。
本文系本人原创,同步更新在我的独立博客http://791202.com/上,如要转载,请注明出处!
最后
以上就是暴躁寒风为你收集整理的springbus类是做什么用的_SpringBoot+EventBus使用教程(一)的全部内容,希望文章能够帮你解决springbus类是做什么用的_SpringBoot+EventBus使用教程(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复