全局异步事件(EventBus)

深度封装 Google Guava 与 Springboot 打通,可在Spring环境中全局调用异步事件
类单机版MQ

使用方法

消息对象

/**
 * 操作日志
 *
 * @author Parker
 * @date 2021年7月15日20:28:24
 */
@Data
@ToString
public class OperationLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 日志ID */
    private String id;

    /** 创建时间 */
    private long createTime;

    /** 日志等级 */
    private String level;

    /** 被操作的系统模块 */
    private String moduleId;

    /** 方法名 */
    private String method;

}

发送消息

@Component
public class LogEventHandler{
    // 注入事件类
    @Resource
    private SpringEventBus springEventBus;

    /**
    * 发送消息
    */
    public void sendMsg(){
        OperationLog operationLog = new OperationLog();
        operationLog.setId("123");
        operationLog.setLevel("1");

        // 消息体 例如日志对象
        springEventBus.post(operationLog)
    }
}

消费消息

消息消费者 只需要实现 IEventConsumer 接口,且泛型为 对应的 消息体类型
即可自动消费对应消息类型的消息

/**
 * 操作日志 事件
 *
 * @author Parker
 * @date 2021年7月15日20:28:24
 */
@Slf4j
@Component
public class OperationLogEvent implements IEventConsumer<OperationLog> {

    @Subscribe
    @Override
    public void consumer(OperationLog event) {
        log.info("存储日志:{}", event);
    }

}
文档更新时间: 2023-06-02 12:49   作者:超级管理员