1.测试程序EventTest.java,发布一个事件只需要调用FrameEventHolder.publishEvent()方法即可. package com.junge.spring.event; import com.junge.spring.vo.Mail; public class EventTest { /** * @param args */ public static void main(String[] args) { FrameEvent frameEvent = new F…
什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环境,可是理解成容器会更好些. ApplicationContext则是应用的容器. Spring把Bean(object)放在容器中,须要用就通过get方法取出来. ApplicationEvent 是个抽象类,里面仅仅有一个构造函数和一个长整型的timestamp. ApplicationListener 是一个接口,里面仅仅有一个onApplicationEvent方法. 所以自己的类在…
原理:ApplicationContextAware接口提供了publishEvent方法,实现了Observe(观察者)设计模式的传播机制,实现了对bean的传播.通过ApplicationContextAware我们可以把系统中所有ApplicationEvent传播给系统中所有的ApplicationListener. 直接上代码: 1.定义自己的监听事件 2.定义自己的监听器(负责处理自己的监听事件) 3.定义一个bean触发监听事件 4.测试 package com.test.even…
spring的事件机制是基于观察者设计模式的,ApplicationListener#onApplicationEvent(Event)方法,用于对事件的处理 .在容器初始化的时候执行注册到容器中的Listener.逆向来查看执行过程 public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @para…
什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些. ApplicationContext则是应用的容器. Spring把Bean(object)放在容器中,需要用就通过get方法取出来. ApplicationEvent 是个抽象类,里面只有一个构造函数和一个长整型的timestamp. ApplicationListener 是一个接口,里面只有一个onApplicationEvent方法. 所以自己的类在实现…
前言 关于事件驱动模型,百度百科在有明确的解释.在JDK的Util包里抽象了事件驱动,有兴趣的朋友可以自行去看下相关类的定义.Spring事件模型ApplicationEvent是基于JDK里的事件模型,废话不多说,直接看Spring是如何定义事件模型,以及在具体业务场景中的应用. 事件 事件就是事件,鼠标点击一下算一个事件,某个按钮被点击了一下算一个点击事件,那么我订单支付了可以认为支付也算一个件事!触发了某个事件...... 等等. 抽象类ApplicationEvent承载着我们要传播的事…
在Spring中已经定义了五个标准事件,分别介绍如下: 1)ContextRefreshedEvent:当ApplicationContext初始化或者刷新时触发该事件. 2)ContextClosedEvent:当ApplicationContext被关闭时触发该事件.容器被关闭时,其管理的所有单例Bean都被销毁3) RequestHandleEvent:在Web应用中,当一个http请求(request)结束触发该事件4)ContestStartedEvent:Spring2.5新增的事件…
我们知道.一般来说一个项目启动时须要载入或者运行一些特殊的任务来初始化系统.通常的做法就是用servlet去初始化.可是servlet在使用spring bean时不能直接注入,还须要在web.xml配置.比較麻烦.今天介绍一下使用spring启动初始化的方法.事实上非常easy,仅仅需两步就能够了. 实现ApplicationListener接口: public class Init implements ApplicationListener<ContextRefreshedEvent>{…
监听器ApplicationListener 就是spring的监听器,能够用来监听事件,典型的观察者模式.ApplicationListener和ContextRefreshedEvent一般都是成对出现的在IOC容器的启动过程中,当所有的bean都已经处理完成之后,spring ioc容器会有一个发布事件的动作.从AbstractApplicationContext 的源码中可以看出: /** * Finish the refresh of this context, invoking th…
import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.beans.factory.annotation.Qualifier; i…