观察者模式


1.注册一个监听事件

继承ApplicationEvent

public class BusinessEvent extent ApplicationEvent {public BusinessEvent(Object source) {super(source);}
}
复制代码

2. 注册事件监听

@Component
public class OwnBusinessEventListener implements ApplicationListener<BusinessEvent> {@Overridepublic void onApplicationEvent(BusinessEvent event) {//TODOSystem.out.println("执行自己的业务逻辑");}
}
复制代码

3. 触发事件监听

@Autowired
private ApplicationContext context;void xxxMethod() {//TODO previous business codeBusinessEvent event = new BusinessEvent("");context.publishEvent(event);
}复制代码

4. 功能扩展

如果需要在一个业务中同时有多个任务处理,则只需要创建一个新的 ApplicationListener 的实现类即可,内部定义自己的处理逻辑。

1. 当主业务流程执行时,所有监听BusinessEvent的监听器都会收到通知,从而执行业务
2. 此功能对应设计模式中的观察者模式:一个改变,所有观察者均能收到通知。
复制代码

01 Spring学习之-事件驱动eventListener相关推荐

  1. 【Spring学习】01

    Spring学习01 Spring概述 简介 优点 组成 Spring快速入门 Spring程序开发步骤 Spring概述 简介 ·Spring框架是由于软件开发的复杂性而创建的.Spring使用的是 ...

  2. JavaEE——Spring学习笔记01【Ioc开发的模式】

    JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...

  3. 第四阶段--Spring学习-01

    第四阶段--Spring学习 1.概述 2.Spring相关概念 2.1 初识Spring 2.2 Spring系统架构 2.2.1 系统架构图 2.2.3 Spring核心概念-IOC.IOC容器. ...

  4. 浅析 Spring 中的事件驱动机制

    今天来简单地聊聊事件驱动,其实写这篇文章挺令我挺苦恼的,因为事件驱动这个名词,我没有找到很好的定性解释,担心自己的表述有误,而说到事件驱动可能立刻联想到如此众多的概念:观察者模式,发布订阅模式,消息队 ...

  5. Spring——Spring学习教程(详细)(上篇)——IOC、AOP

    本文是Spring的学习上篇,主要讲IOC和AOP. Spring的JDBCTemplete以及事务的知识,请见下篇. Spring--Spring学习教程(详细)(下篇)--JDBCTemplete ...

  6. 我的Spring学习记录(二)

    本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...

  7. JavaEE——Spring学习笔记03【AOP开发】

    JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...

  8. spring学习12 -Spring 框架模块以及面试常见问题注解等

    以下为spring常见面试问题: 1.Spring 框架中都用到了哪些设计模式? Spring框架中使用到了大量的设计模式,下面列举了比较有代表性的: 代理模式-在AOP和remoting中被用的比较 ...

  9. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...

最新文章

  1. zabbix_get 无法获取值(解决思路)
  2. 实际程序调用IndexWriter* writer = NULL
  3. MVVM架构~knockoutjs系列之验证成功提示显示
  4. SQLite Insert 语句(http://www.w3cschool.cc/sqlite/sqlite-insert.html)
  5. java 8 集合分组_Java 8:按集合分组
  6. 敏捷数据科学pdf_敏捷数据科学数据科学可以并且应该是敏捷的
  7. 关于mysql中GROUP_CONCAT函数的使用
  8. 每天CookBook之Python-062
  9. 匪夷所思:罕见的 Oracle 全局事务锁等待事件分析
  10. JS判断浏览器类型与版本
  11. iis 中php的mime类型,IIS添加MIME扩展类型及常用的MIME类型列表
  12. LanguageTool精简的两个思路
  13. xpos兼容android最高版本,[原创]学习篇-xposed框架及高版本替代方案
  14. WTS:基于Web的Terminal控制台
  15. Windows系统开机自动运行程序和自动启动服务
  16. 解决tensorflow2.x中使用tf.contrib.slim包时出现的No module named:tensorflow.contrib 问题
  17. 【wav】wav文件查看
  18. 【入门级】Hibernate环境搭建
  19. Qt MetaObject sysmtem 详解之三:QMetaObject接口实现
  20. APP自动化测试之录制脚本:3.运行录制的脚本

热门文章

  1. 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
  2. SpringCloud 从菜鸟到大牛之五 统一配置中心 Spring Cloud Config
  3. 创建用户故事地图的步骤
  4. 使用setCustomView建立标题居中的自定义ActionBar
  5. 框架源码专题:Spring的Aop实现原理,Spring AOP 与 AspectJ 的关系
  6. Spring Cloud Sleuth 原理简介和使用
  7. Eclipse 下如何引用另一个项目的Java文件
  8. 详解 Qt 串口通信程序全程图文 (5)
  9. RabbitMQ集群(单机多实例部署)
  10. springboot引入外部yml配置文件