springboot事件通知

在项目中如果按照多个模块开发的话就会涉及到数据之间的关联

比如设备基础模块的数据会提供给其他模块(门禁,考勤等)使用;如果公共模块的数据发生改变就要通知其他模块知道,比如,删除,修改等

这个时候就需要业务解耦;实现的方式有很多种,springboot有自带的事件通知;

当事件发生改变的时候,就会接收到消息:

继承事件:

@Getter
public class DeviceEvent extends ApplicationEvent {

    private Integer id;

    private String tableName;

    /**
     * Create a new ApplicationEvent.
     *
     * @param source the object on which the event initially occurred (never {@code null})
     */
    public DeviceEvent(Object source, Integer id, String tableName) {
        super(source);
        this.id = id;
        this.tableName = tableName;
    }

}

注册事件监听器,处理事件发生:

@Configuration
public class DeviceListener {

    @Autowired
    private DoorDeviceInfoMapper doorDeviceInfoMapper;

    @EventListener
    @Async //异步处理防止影响主流程
    public void onApplicationEvent(DeviceEvent event) {
        LambdaQueryWrapper<DoorDeviceInfo> queryWrapper = new QueryWrapper<DoorDeviceInfo>().lambda();
        queryWrapper.eq(DoorDeviceInfo::getDeviceId, event.getId())
                .eq(DoorDeviceInfo::getTableName, event.getTableName());
        doorDeviceInfoMapper.delete(queryWrapper);
    }
}

在业务处将事件发送出去

    @Autowired
    private ApplicationContext applicationContext;


    //事件发生的方法
     DeviceEvent deviceEvent = new DeviceEvent(this, id, tableName);
     applicationContext.publishEvent(deviceEvent);

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建独立的、生产级别的Java应用程序的框架。它提供了一种简化的方式来开发和部署应用程序,同时也提供了许多功能和特性来支持各种应用程序开发需求。 在Spring Boot事件驱动编程是一种常见的编程模型,它基于观察者模式。通过使用事件驱动编程,我们可以实现松耦合的组件之的通信,以及异步处理和并发执行。 在Spring Boot事件驱动编程主要涉及以下几个核心概念: 1. 事件(Event):事件是系统发生的某个特定的动作或状态变化,可以是用户操作、消息到达、定时任务等。事件可以是自定义的Java对象,通常包含一些相关的数据。 2. 事件发布者(Event Publisher):事件发布者负责发布事件,即将事件通知给所有对该事件感兴趣的监听器。在Spring Boot,可以通过使用ApplicationEventPublisher接口来发布事件。 3. 事件监听器(Event Listener):事件监听器是对特定事件感兴趣的组件,它们会订阅某个或多个事件,并在事件发生时执行相应的逻辑。在Spring Boot,可以通过实现ApplicationListener接口或使用@EventListener注解来定义事件监听器。 4. 事件处理器(Event Handler):事件处理器是事件监听器实际执行逻辑的部分,它定义了对事件的响应行为。事件处理器可以是任意的Java方法,可以通过在监听器调用相应的处理方法来处理事件。 通过使用Spring Boot的事件驱动编程,我们可以实现各种场景下的异步处理、解耦和扩展。例如,可以使用事件驱动编程来实现消息队列、定时任务、系统通知等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值