Spring Event

月伴飞鱼 2025-01-18 23:11:23
实战相关
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

Spring EventSpring 框架提供的一种事件驱动机制,允许应用程序中的不同组件之间进行解耦的通信。

通过使用事件发布-订阅模式,开发者可以轻松地实现松耦合的组件间通信,提高代码的可维护性和扩展性。

组成部分

Event(事件):

  • 表示应用程序中发生的某个特定事件,通常是一个简单的 POJO 类,继承自 ApplicationEvent

Event Publisher(事件发布者):

  • 负责发布事件的对象,通常是一个实现了 ApplicationEventPublisher 接口的 Bean

Event Listener(事件监听器):

  • 负责处理事件的对象,通常是一个带有 @EventListener 注解的方法。

基本使用

创建一个事件:

public class MessageEvent<T> extends ApplicationEvent {
     //消息体
    private T msg;
     //消息码
    private String code;
}

创建一个监听器:

public class MessageHander  {
    @EventListener(MessageEvent.class)
    public void onMessage(MessageEvent event){
        //业务逻辑
        System.out.println("A接收到消息:"+event.getMsg());
    }
}
public class MessageHanders implements ApplicationListener<MessageEvent<?>> {
    @Override
    public void onApplicationEvent(MessageEvent<?> messageEvent) {
        //业务逻辑
        System.out.println("B接收到消息:"+messageEvent.getMsg());
    }
}

发布事件:

public class ClazzServiceImpl implements ClazzService {
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;

    public void Notice(String code, String msg) {
        //雨雾逻辑
        System.out.println("发布消息");
        applicationEventPublisher.publishEvent(new MessageEvent<String>(msg, code));
    }
}
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!