Spring消息机制

作者: 关捷 | 来源:发表于2018-09-08 21:39 被阅读4次

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

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托管后,会自动被识别,并加入到消息监听器集合中,使用实例:
@Component
public class DefaultListener 
implements ApplicationListener<ApplicationEventSimple> 
  1. 发布消息,通过ApplicationContext.publishEvent(ApplicationEvent event)发布消息,Spring会自动找到对应的处理器进行处理。

Spring内置事件

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

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

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

最后,Spring消息消费可以控制异步或者同步执行,而正确的使用消息机制对于代码的逻辑控制将会非常的灵活。

相关文章

  • Spring消息机制

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

  • Spring 观察者模式 结合 TCP 数据重组思想

    Spring 的ApplicationEvent 机制 实现了简单消息事件通知机制,如果不是分布式的单机应用,用这...

  • Spring事件源码解析

    Spring事件监听源码分析 众所周知,在Spring中集成了内部的消息分发机制,可以在代码中使用注解@Event...

  • Spring Boot的消息事件机制

    Spring Boot自带了消息机制,可以让我们在一个地方发布消息,多个地方同时接收消息并处理消息,当然这是在同一...

  • Spring集成RabbitMQ-接收消息

    上篇介绍了有关Spring-AMQP发送消息的机制和方法。既然有发送消息,那么就有接收消息,相比发送端只是埋头一通...

  • Spring RabbitMQ 消息重试机制

    RabbitMQ框架提供了重试机制,只需要简单的配置即可开启,可以提升程序的健壮性。 测试一:重试5次 测试二:重...

  • Runtime

    相关简单介绍 消息机制消息传递机制消息转发机制-动态添加方法消息转发机制-快速转发消息转发机制-慢速转发消息转发机...

  • Spring之事件机制初始化流程

    描述 在Spring之事件机制模型中我们了解了spring事件机制的模型以及工作流程,下面通过源码分析spring...

  • Spring 事件机制概述

    Spring 事件机制是观察者模式的典型应用,本文将由浅入深从观察者模式、java事件机制、Spring事件机制三...

  • Guava中的事件机制以及和Spring事件机制的对比

    在以前的文章中,我们有介绍过Java原生的事件机制和Spring提供的事件机制使用方法: 《Spring事件机制》...

网友评论

    本文标题:Spring消息机制

    本文链接:https://www.haomeiwen.com/subject/odzcgftx.html