org.greenrobot.eventbus发布-订阅模式事件

2024-01-23  本文已影响0人  AC编程

一、简介

org.greenrobot.eventbus 是一个开源的事件总线库,用于实现发布-订阅模式的事件通信。

二、代码

2.1 添加依赖
<!-- https://mvnrepository.com/artifact/org.greenrobot/eventbus -->
<dependency>
    <groupId>org.greenrobot</groupId>
    <artifactId>eventbus</artifactId>
    <version>3.3.1</version>
</dependency>
2.2 消息类
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EventMessage {

    private String topic;

    private Object data;
}
2.3 发布事件
@Slf4j
@Component
public class UpdateDeptEventSend {

    /**
     * 发布事件
     */
    public void sendEvent() {
        EventMessage eventMessage = EventMessage.builder()
            .topic("update_dept")
            .build();
        EventBus.getDefault().post(eventMessage);
    }
}
2.4 注册事件
@Component
@Slf4j
public class FlowEventHandler {

    @Resource
    private UpdateDeptListener updateDeptListener;

    @PostConstruct
    public void init() {
        EventBus.getDefault().register(updateDeptListener);
    }

    @PreDestroy
    public void destroy() {
        EventBus.getDefault().unregister(updateDeptListener);
    }
}
2.5 监听事件
@Slf4j
@Component
public class UpdateDeptListener {

    @Subscribe
    public void onMessageEvent(EventMessage eventMessage) {
        if (!"update_dept".equals(eventMessage.getTopic())) {
            return;
        }
        //处理业务逻辑
    }
}
上一篇 下一篇

猜你喜欢

热点阅读