Spring的事件发布机制】的更多相关文章

一:Spring的事件发布 ApplicationContext提供了针对Bean的事件传播功能,其中的主角是publishEvent()方法,通过这个方法可以将事件通知给系统内的监听器(需实现ApplicationListener接口). ApplicationContext这个接口,是Spring的上下文,通常获取Bean就需要这个接口,这个接口并不是直接继承于BeanFactory,其中最著名的是直接继承了ApplicationPublisher接口,这个接口查看源码可以发现:只有一个方法…
[一]相关源代码类 (1)spring的事件发布监听机制的核心管理类:org.springframework.context.event.SimpleApplicationEventMulticaster. =>该类的初始化是放在项目加载时,在ioc容器xml配置文件解析加载完毕后,注册bean创建前后置处理实现类(BeanPostProcessor 接口实现),beanFactory配置处理(BeanFactoryPostProcessor接口实现)后,初始化该事件发布监听机制的核心类. pu…
前言 最近在项目中做了一项优化,对业务代码进行解耦.我们部门做的是警用系统,通俗的说,可理解为110报警.一条警情,会先后经过接警员.处警调度员.一线警员,警情是需要记录每一步的日志,是要可追溯的,比如报警人张小三在2019-12-02 00:02:01时间报警,接警员A在1分钟后,将该警情记录完成,并分派给处警调度员B,调度员B在5分钟后,分派给一线警员C,C赶到现场后,花了1个小时处理完成. 这中间,每一个接口,需要做的事情,可能就包括了:警情日志记录:警员当前任务数统计,包括待处置的任务和…
上一篇文章https://www.cnblogs.com/redwinter/p/16198942.html介绍了Spring的注解的解析过程以及Spring Boot自动装配的原理,大概回顾下:Spring 解析注解是通过BeanFactoryPostProcessor的子接口BeanDefinitionRegistryPostProcessor的实现类ConfigurationClassPostProcessor进行实现的,主要解析了@Componenet.@ComponentScans.@…
温馨提示: 本文内容基于个人学习Nacos 2.0.1版本代码总结而来,因个人理解差异,不保证完全正确.如有理解错误之处欢迎各位拍砖指正,相互学习:转载请注明出处. Nacos的服务注册.服务变更等功能都是通过事件发布来通知的,搞清楚事件发布订阅的机制,有利于理解业务的流程走向.本文将浅显的分析Nacos中的事件发布订阅实现. 事件(Event) 常规事件(Event) package com.alibaba.nacos.common.notify; public abstract class…
前言: Spring的AppilcaitionContext能够发布事件和注册相对应的事件监听器,因此,它有一套完整的事件发布和监听机制. 流程分析: 在一个完整的事件体系中,除了事件和监听器以外,还应该有3个概念: 1. 事件源:事件的产生者,任何一个event都必须有一个事件源: 2. 事件广播器:它是事件和事件监听器之间的桥梁,负责把事件通知给事件监听器: 3. 事件监听器注册表:就是spring框架为所有的监听器提供了一个存放的地方: 通过流程图,可以看出它们是如何各司其职的,如下: 其…
springboot应用,启动spring容器大致有如下几个过程: 容器开始启动 初始化环境变量 初始化上下文 加载上下文 完成 对应的Spring应用的启动器的监听器可以监听以上的过程,接口如下: public interface SpringApplicationRunListener { /** * Called immediately when the run method has first started. Can be used for very * early initializ…
1.创建发布对象 LoginEvent 2.在要发布对象的地方注入 ApplicationEventPublisher @Autowired ApplicationEventPublisher publisher; 3.发布 : 调用publisher的publishEvent(Object event)方法 publisher.publishEvent(new LoginEvent()) 4.创建事件监听Component @Component public class LoginEventH…
最近公司在重构广告系统,其中核心的打包功能由广告系统调用,即对apk打包的调用和打包完成之后的回调,需要提供相应的接口给广告系统.因此,为了将apk打包的核心流程和对接广告系统的业务解耦,利用了spring的事件监听特性来满足需求.以下说明spring的事件机制的相关内容.   1.观察者模式    Spring的事件监听(也称事件驱动)是观察者模式的一种实现,比较常见的有发布-订阅模型.通常我们利用消息队列来实现不同系统之间的解耦,如用户注册完成后,可以向消息队列发布一条消息,然后订阅了此to…
优势 解耦 对同一种事件有多种处理方式 不干扰主线(main line) 起源 要讲spring的事件通知机制,就要先了解一下spring中的这些接口和抽象类: ApplicationEventPublisherAware        接口:用来 publish event ApplicationEvent                  抽象类,记录了source和初始化时间戳:用来定义Event ApplicationListener<E extends ApplicationEvent…