ApplicationContext context =new ClassPathXmlApplicationContext("beans-config.xml"); .... context.publishEvent(new ContextClosedEvent(context));假设您在Bean定义档中有这么定义:
<?xml version="1.0" encoding="UTF-8"?>则在文字模式下会显示以下的讯息:
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="listener"
class="org.springframework.context.event.ConsoleListener"/>
....
</beans>
... org.springframework.context.event.ContextClosedEvent [source=org.springframework.context.support.ClassPathXmlApplicationContext: display name [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=8795033]; startup date [Fri Oct 28 22:24:15 GMT+08:00 2005]; root of context hierarchy]
如果您打算实作自己的ApplicationEvent,则可以直接继承ApplicationEvent,例如:
package onlyfun.caterpillar; import org.springframework.context.ApplicationEvent; public class SomeEvent extends ApplicationEvent { public SomeEvent(Object obj) { super(obj); } .... }
在必要的时候就使用ApplicationContext的publishEvent()方法发布这个事件以通知实作ApplicationListener的类别之实例:
context.publishEvent(new SomeEvent("SomeEvent published"));