spring中applicationcontext的事件机制-编程开发技术

spring中applicationcontext的事件机制-编程开发技术

ID:31317182

大小:71.00 KB

页数:3页

时间:2019-01-08

spring中applicationcontext的事件机制-编程开发技术_第1页
spring中applicationcontext的事件机制-编程开发技术_第2页
spring中applicationcontext的事件机制-编程开发技术_第3页
资源描述:

《spring中applicationcontext的事件机制-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Spring中ApplicationContcxt的事件机制-编程开发技术Spring中ApplicationContext的事件机制原文出处:chenssyApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext事件处理。如果容器中有一个ApplicationListenerBean,每当ApplicationContext发布ApplicationEvent时,

2、ApplicationListenerBeam将口动被触发。Spring的事件框架有如下两个重要的成员:•ApplicationEvent:容器事件,必须由ApplicationContext发布•ApplicationListener:监听器,町由容器中的任何监听器Bean担任实际上,Spring的事件机制与所冇时间机制都基本相似,它们都需要事件源、事件和事件监听器组成。只是此处的事件源是ApplicationContcxt,且事件必须由Java程序显式触发。下而的程序将演示Spring容器的事件机制

3、。程序先定义了一个ApplicationEvent类,其对彖就是一个Spring容器事件。代码如下:publicclassEmailEvenlextendsApplicationEvent{privateStringaddress;privatcStringtext;publicEmailEvent(Objectsource,Stringaddress,Stringtext){super(source);this.address=address;this・text=text;}publicEmailEv

4、ent(Objectsource){super(source);}//address禾IItext的setter、getter}上面的EmailEvent类继承了ApplicationEvent类,除此之外,它就是一个普通的Java类。容器事件的监听器类必须实现ApplicationListener接口,实现该接口就必须实现如下方法:•onApplicationEvcnt(ApplicationEvcntevent):每当容器内发生任何事件时,此方法都会被触发木例所使用的容器监听器类代码如一F:publ

5、icclassEmailNotifierimplementsApplicationListener{publicvoidonApplicationEvent(ApplicationEventevent){if(eventinstaneeofEmailEvent){EmailEventemailEvent=(EmailEvent)event;System,out.printin(,z邮件地址:"+emailEvent.getAddress());System,our.printin邮件内容:"+email

6、Event.getText());}else{System,our.printin(z,容器本身事件:〃+event);}}}将监听器配置在Spring的容器中,代码如2为Spring容器注册监听器,不需要像AWT编程那样采用代码进行注册,只需要在Spring的配置文件小进行简单配置即可。当我们住唉Spring屮配置了一个实现了ApplicationListener的Bean,Spring容器就会把这个Bean当成容器事件的监听器。

7、当系统创建Spring容器、加载Spring容器时会自动触发容器事件,容器事件监听器可以监听到这些事件。除此之外,程序也可以调用Applicationcontext的publishEvent()方法来主动触发一个容器事件,如下是一个例子:publicclassSpringTest{publicstaticvoidmain(Stringargs[]){ApplicationContextcontext二newClassPathXmlApplicationContext(〃bean.xml〃);//创建一个

8、ApplicationEvent对象EmailEventevent=newEmailEvent(,zhello,z,〃abc@163.com","Thisisatest");//主动触发该事件context.publishEvent(event);注意:如杲Bean想发布事件,则Bean必须获得其容器的引用。如果程序屮没冇直接获取容器的引用,则应该让Bean实现ApplicationContextAware或者BeanFactoryAwar

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。