继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spring消息机制

青春有我
关注TA
已关注
手记 1239
粉丝 205
获赞 1008

消息机制是使用消息通知的方式,解耦生产者与消费者。编程上体现的是职责分割,使得消息处理的扩展性得到增强,符合设计原则中的单一职责以及开闭原则。

webp


Spring的ApplicationListener接口

ApplicationListener是Spring应用监听器基础接口,是消费者需要实现,用来消费特定事件的,接口如下:

public interface ApplicationListener<E extends ApplicationEvent> 
extends EventListener {    /**
    * Handle an application event.
    * @param event the event to respond to
    */
    void onApplicationEvent(E event);
  }

如何使用

利用Spring消息机制进行业务处理,逻辑非常简单,只需要以下几个步骤:

  1. 定义事件消息,即需要发布的消息对象,例如:

public class ApplicationEventSimple extends ApplicationEvent
  1. 定义处理器,并声明能够处理的消息类型,即实现ApplicationListener接口,实现类被Spring托管后,会自动被识别,并加入到消息监听器集合中,使用实例:

@Componentpublic class DefaultListener implements ApplicationListener<ApplicationEventSimple>
  1. 发布消息,通过ApplicationContext.publishEvent(ApplicationEvent event)发布消息,Spring会自动找到对应的处理器进行处理。

Spring内置事件

Spring在容器启动阶段或者销毁阶段,提供了相关的事件通知,通过传递整个ApplicationContext,以便使用者在容器启停阶段能够植入自己的逻辑。

消息类的基类为:ApplicationContextEvent,具体实现有ContextStartedEvent(容器开始启动事件)ContextClosedEvent(容器关闭时事件)ContextRefreshedEvent(IOC容器启动完成事件)ContextStoppedEvent(容器停止事件)

如果想要监听这些事件,只需要实现监听程序即可,我司RPC自动注册就是通过ContextRefreshedEvent消息的监听,然后处理的。



作者:关捷
链接:https://www.jianshu.com/p/d71ceaf7160e


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP