如何自定义事件(Spring事件机制浅谈)
LZ第一次在工作中接触Spring事件机制是项目中的定时任务,当Spring容器初始化完成时,把配置在数据库中的定时任务数据全部加载.此时只用定义一个类实现ApplicationListener接口,并把该类交给Spring来管理,并在覆写的方法中实现自己的业务即可,因为ContextRefreshedEvent就是Spring的启动事件,Spring启动完成就会触发该事件. 我们
LZ第一次在工作中接触Spring事件机制是项目中的定时任务,当Spring容器初始化完成时,把配置在数据库中的定时任务数据全部加载.此时只用定义一个类实现ApplicationListener<ContextRefreshedEvent>接口,并把该类交给Spring来管理,并在覆写的方法中实现自己的业务即可,因为ContextRefreshedEvent就是Spring的启动事件,Spring启动完成就会触发该事件.
我们工作中也有许多时候需要自己定义事件与监听器,例如,在金融相关的项目中,当一笔借款或还款被审核成功后可能会推送消息,发站内信,发短信,记录流水等等,如果我们都通过注入对象调用对象对应的方法来处理,那么代码耦合度高.此时我们可以使用Spring的事件机制来处理.
接口简介:
ApplicationEvent : 事件,代表一个事情发生了,一个事件对象需要关联(事件源,事件关联的对象);
ApplicationEventPublisher : 发布消息对象,负责发布消息,调度消息的监听器;
ApplicationListener : 负责处理某一类消息;
流程简介:
首先创建一个监听器,并注册到Spring容器;
其次,在某一个事件发生的时候,创建这个事件对应的消息对象(ApplicationEvent);
最后,调用发布消息的方法去发布和调度监听器处理这个消息.
下面是个简单的实践:
更多推荐
所有评论(0)