当前位置: 首页 > article >正文

Spring 中的事件驱动模型

事件驱动的基本了解

事件模式也就是观察者模式,当一个对象改变的时候,所有依赖的对象都会收到一个通知。

Subject:抽象主题

Observer:具体主题

Concrete Subject:抽象观察者,在得到更新通知之后去更新自己。

Concrete Observer:一个具体观察者,去实现抽象观察者的定义

Spring事件驱动模型的组成和应用

先定义一个事件,也就是一个类继承ApplicationEvent这个是Spring下的

之后定义一个推送事件的一个消息

在定义一个监听者,在发送消息后监听者会收到消息发送,然后进行处理。

它有两实现方式

第一种是实现ApplicationListener

第二种通过添加注解实现@EventListener,这个可以添加参数也可以不添加,这个主要是看你对那个事件更感兴趣。如果有参数则有且只有一个参数。

创建一个新的类用于事件发布,它有两种方式

第一种ApplicationContext注入到工厂。

第二种就是ApplicationEventPublisher直接注入即可。

如果需要使用异步操作则还需要自己定义一个线程池进行使用。

先创建一个配置类,去使用线程池。

在里面定义线程池

之后在方法上面添加一个@Bean设置参数为eventAsyncTaskExecutor。

定义好了之后回到之前的两个方法里面去指定线程池。

常见的Spring内建事件

创建一个内部事件的一个监听。

这个是在Spring初始化刷新时触发的,也就是所有的Bean都被加载,如果需要监听就添加上@EventListener这个注解,没有添加参数是自动识别的。

这个是Spring容器关闭时会触发。

这个是在Spring运行完毕并且准备接受请求时会触发。


http://www.kler.cn/a/514292.html

相关文章:

  • Java自定义多队列线程池
  • springboot基于安卓的智启教育服务平台app
  • Day 14 卡玛笔记
  • adb 命令使用大全
  • github汉化
  • BEVFusion论文阅读
  • 一文读懂 RocketMQ:从概念到架构与应用原理概述
  • 图谱之前端关系应用
  • style标签没有写lang=“scss“引发的 bug 和反思
  • 基于lstm算法在MATLAB对短期风速进行预测
  • OSPF协议部分解读
  • 数字图像处理:实验三
  • Unity自学之旅03
  • Kafka 和 MQ 的区别
  • 在 AWS 上规划灾难恢复的分步指南
  • pgsql中处理数组类型字段
  • 【C++】运算符
  • PyTorch使用教程(5)-优化器
  • Android 绘图基础:Canvas,Paint,RectF,Paint类
  • 25/1/21 算法笔记<ROS2> 话题通信接口
  • LabVIEW太赫兹二维扫描成像系统
  • 【Nacos】Nacos快速上手
  • Models如何使用Gorm与数据库进行交互?
  • 利用Kubespray安装生产环境的k8s集群-准备篇
  • centos哪个版本建站好?centos最稳定好用的版本
  • 音频入门(二):音频数据增强