事件机制作为一种编程机制,在许多语言中都提供了支持.JAVA语言也不例外,java中的事件机制的参与者有3种角色: 1.event object 2.event source 3.event listener这三个角色的含义字面上很好解,它们就定义了事件机制的一个基本模型.作为一种常用的编程设计机制,许多开源框架的设计中都使用了事件机制.SpringFramework也不例外,下面着重阐述个人对spring中的事件机制的一些理解.其中一个主要的使用场景是用在IOC的容器的启动过程,当所有的bea…
ApplicationListener和ContextRefreshedEvent一般都是成对出现的.最近在面试中问到了被面试者对于这两个的用法,面试者大多数被问懵了.可见基础知识的掌握程度.基于此本文将介绍它们的用法. 事件机制作为一种编程机制,在许多语言中都提供了支持.JAVA语言也不例外,java中的事件机制的参与者有3种角色: event object event source event listener 这三个角色的含义字面上很好解,它们就定义了事件机制的一个基本模型.作为一种常用的…
最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationContext中去通过ctx获取所有的bean,后来发现好像逻辑不对,这个方法不是在所有bean初始化完成后实现的,后来试了一下看看有没有什么Listener之类的,发现了好东西ApplicationListener,然后百度一下ApplicationListener用法,原来有一大堆例子,我也记录一下我…
本文链接:https://blog.csdn.net/u010963948/article/details/83507185 1.ApplicationContext Spring的核心,Context我们通常解释为上下文环境.ApplicationContext则是应用的容器. Spring把Bean(object)放在容器中,需要用就通过get方法取出来.在ApplicationContext接口的众多实现类中,有3个是我们经常用到的(见表1-1),并且使用这3个实现类也基本能满足我们Jav…
ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在ApplicationListener的Bean,当ApplicationContext调用publishEvent方法时,对应的Bean会被触发.这一过程是典型的观察者模式的实现. ApplicationListener源码 @FunctionalInterface public interface Appli…
In Spring, InitializingBean and DisposableBean are two marker interfaces, a useful way for Spring to perform certain actions upon bean initialization and destruction. For bean implemented InitializingBean, it will run afterPropertiesSet() after all b…
关于Spring InitializingBean 接口以及Aware接口实现的其实都在 第11步中: finishBeanFactoryInitialization() 方法中完成了3部分的内容: 1.完成对单例的非懒加载的bean 进行初始化 2.对于InitializingBean 接口 spring 会自动调用它的 afterPropertiesSet方法: 3.还进行了对实现了Aware 接口实现的调用 多说无益,我们来看一看,它是怎么完成初始化,以及接口的调用: a:  第一步肯定是…
最近工作需要得到sping中的每个事物需要执行的sql,称机会简单研究了一下spring的事务,项目中管理事务比较简单,用TransactionTemplate,就直接以TransactionTemplate为入口开始学习.TransactionTemplate的源码如下: public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, Initiali…
原文转自:http://blog.csdn.net/shaozheng1006/article/details/6916940 InitializingBean     Spirng的InitializingBean为bean提供了定义初始化方法的方式.InitializingBean是一个接口,它仅仅包含一个方法:afterPropertiesSet().   在spring 初始化后,执行完所有属性设置方法(即setXxx)将自动调用 afterPropertiesSet(), 在配置文件中…
先说总结:1:spring为bean提供了两种初始化bean的方式,实现InitializingBean接口,实现afterPropertiesSet方法,或者在配置文件中同过init-method指定,两种方式可以同时使用2:实现InitializingBean接口是直接调用afterPropertiesSet方法,比通过反射调用init-method指定的方法效率相对来说要高点.但是init-method方式消除了对spring的依赖3:如果调用afterPropertiesSet方法时出错…