广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot事件发布和监听的示例分析
  • 399
分享到

SpringBoot事件发布和监听的示例分析

2023-06-25 15:06:49 399人浏览 独家记忆
摘要

这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述ApplicationEvent以及Listener是spring为我们提供的一个事件监听、订阅的实现,内

这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

概述

ApplicationEvent以及Listener是spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。事件监听的作用与消息队列有一点类似。

SpringBoot事件发布和监听的示例分析

事件监听的结构

主要有三个部分组成:

  1. 发布者Publisher

  2. 事件Event

  3. 监听者Listener

SpringBoot事件发布和监听的示例分析

Publisher,Event和Listener的关系

SpringBoot事件发布和监听的示例分析

事件

我们自定义事件MyTestEvent继承了ApplicationEvent,继承后必须重载构造函数,构造函数的参数可以任意指定,其中source参数指的是发生事件的对象,一般我们在发布事件时使用的是this关键字代替本类对象,而user参数是我们自定义的注册用户对象,该对象可以在监听内被获取。

@Getterpublic class MyTestEvent extends ApplicationEvent {    private static final long serialVersionUID = 1L;    private User user;    public MyTestEvent(Object source, User user) {        super(source);        this.user = user;    }}

SpringBoot事件发布和监听的示例分析

发布者

事件发布是由ApplicationContext对象管控的,我们发布事件前需要注入ApplicationContext对象调用publishEvent方法完成事件发布。

ApplicationEventPublisher applicationEventPublisher 虽然声明的是ApplicationEventPublisher,但是实际注入的是applicationContext

@RestController@RequestMapping("/test")public class TestController {    @Autowired    ApplicationContext applicationContext;    @Autowired    ApplicationEventPublisher applicationEventPublisher;    @GetMapping("testEvent")    public void test() {        applicationEventPublisher.publishEvent(new MyTestEvent("dzf-casfd-111", new User("dzf-625096527-111", "xiaoming", 19)));        applicationEventPublisher.publishEvent(new MyTestEvent("dzf-49687489-111", new User("dzf-625096527-111", "xiaowang", 20)));    }}

监听者

面向接口编程,实现ApplicationListener接口

@Componentpublic class MyTestListener implements ApplicationListener<MyTestEvent> {    @Override    public void onApplicationEvent(MyTestEvent myTestEvent) {        System.out.println("MyTestListener : " + myTestEvent.getUser());    }}

使用@EventListener注解配置

@Componentpublic class MyTestListener2{    @EventListener(MyTestEvent.class)    public void onApplicationEvent(MyTestEvent myTestEvent) {        System.out.println("MyTestListener2:" + myTestEvent.getUser());    }}

以上是“SpringBoot事件发布和监听的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: SpringBoot事件发布和监听的示例分析

本文链接: https://www.lsjlt.com/news/305475.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot事件发布和监听的示例分析
    这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内...
    99+
    2023-06-25
  • Netty分布式监听读事件的示例分析
    小编给大家分享一下Netty分布式监听读事件的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们回到AbstractUnsafe的register0()方...
    99+
    2023-06-29
  • SpringBoot事件发布和监听详解
    目录概述事件监听的结构Publisher,Event和Listener的关系事件发布者监听者总结概述 ApplicationEvent以及Listener是Spring为我们提供的...
    99+
    2022-11-12
  • Flex事件机制中Flex事件分发和监听的示例分析
    这篇文章给大家分享的是有关Flex事件机制中Flex事件分发和监听的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是Flex事件机制Flex事件可以看作是一种触发机制,当满足了一定的条件后,会触发这个...
    99+
    2023-06-17
  • Spring Boot启动事件和监听器的示例分析
    这篇文章将为大家详细讲解有关Spring Boot启动事件和监听器的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring Boot 启动事件顺序1、ApplicationStartingEv...
    99+
    2023-06-17
  • javascript中事件监听与事件委托的示例分析
    这篇文章主要介绍了javascript中事件监听与事件委托的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。事件监听与事件委托在js中...
    99+
    2022-10-19
  • JavaScript的事件监听实例分析
    这篇文章主要介绍了JavaScript的事件监听实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript的事件监听实例分析文章都会有所收获,下面我们一起来看看吧。1.什么是事件监听 ?事件监听...
    99+
    2023-06-29
  • Spring事件发布与监听机制的用法示例
    小编给大家分享一下Spring事件发布与监听机制的用法示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、ApplicationContext 事件机制Appl...
    99+
    2023-06-20
  • javascript组合按键事件监听的示例分析
    这篇文章主要为大家展示了“javascript组合按键事件监听的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript组合按键事件监听的示例...
    99+
    2022-10-19
  • VUE监听窗口变化事件的示例分析
    这篇文章将为大家详细讲解有关VUE监听窗口变化事件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vuejs 本身就是一个 MVVM 的框架。但是在监听 wind...
    99+
    2022-10-19
  • SpringBoot如何实现ApplicationEvent事件的监听与发布
    这篇文章主要介绍“SpringBoot如何实现ApplicationEvent事件的监听与发布”,在日常操作中,相信很多人在SpringBoot如何实现ApplicationEvent事件的监听与发布问题上存在疑惑,小编查阅了各式资料,整理...
    99+
    2023-07-05
  • 详解SpringBoot实现ApplicationEvent事件的监听与发布
    目录新建SpringBoot项目实现代码pom.xmlApplication.javaTaskPoolConfig.javaEmailDto.javaSendEmailEvent.j...
    99+
    2023-03-08
    SpringBoot ApplicationEvent事件监听发布 SpringBoot ApplicationEvent事件监听 SpringBoot ApplicationEvent事件发布 Sp
  • Netty分布式源码分析监听读事件
    前文传送门:NioSocketChannel注册到selector 我们回到AbstractUnsafe的register0()方法: private void register0(...
    99+
    2022-11-13
  • 解析Spring事件发布与监听机制
    前言 Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。 Spring 内置了一些事件和监听器,例如在 Spring 容器启...
    99+
    2022-11-12
  • H5中APP监听返回事件处理的示例分析
    这篇文章将为大家详细讲解有关H5中APP监听返回事件处理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在使用MUI框架的时候,我们经常会用到一个头部带有.mui...
    99+
    2022-10-19
  • Laravel事件监听方法实例分析
    这篇文章主要介绍了Laravel事件监听方法实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel事件监听方法实例分析文章都会有所收获,下面我们一起来看看吧。Laravel Event &...
    99+
    2023-06-30
  • 如何实现Spring事件发布监听、顺序监听和异步监听
    这篇文章给大家分享的是有关如何实现Spring事件发布监听、顺序监听和异步监听的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. Spring的事件通知Spring的事件通知本质上就是发布-订阅,即生产者-消费者...
    99+
    2023-06-22
  • springboot 事件监听器的案例详解
    目录前言引导案例一、通过实现ApplicationListener接口实现步骤1、自定义一个事件类(对象),继承ApplicationEvent2、自定义业务类实现Applicati...
    99+
    2022-11-13
  • nodejs事件的监听与触发的理解分析
    本文实例分析了nodejs事件的监听与触发。分享给大家供大家参考。具体分析如下: 关于nodejs的事件驱动,看了《nodejs深入浅出》还是没看明白(可能写的有点深,或者自己理解能力不够好),今日在图灵社...
    99+
    2022-06-04
    事件 nodejs
  • oracle11g rac监听配置的示例分析
    这篇文章主要介绍了oracle11g rac监听配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1)概述rac配置如下:[gr...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作