全局异步事件(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 作者:超级管理员