Spring事件(1)-内置事件
Spring 系列教程
Spring中的事件是⼀个ApplicationEvent类的⼦类,由实现ApplicationEventPublisherAware接⼝的类发送,实现ApplicationListener接⼝的类监听。ApplicationContext 事件
Spring中已经定义了⼀组内置事件,这些事件由ApplicationContext容器发出。
例如,ContextStartedEvent在ApplicationContext启动时发送,ContextStoppedEvent在ApplicationContext停⽌时发送。
实现ApplicationListener的类可以监听事件。
Spring的事件是同步的(单线程的),会被阻塞。
监听ApplicationContext事件
要监听ApplicationContext事件,监听类应该实现ApplicationListener接⼝并重写onApplicationEvent()⽅法。ContextStartEventHandler.java
import t.ApplicationListener;
import t.event.ContextStartedEvent;
public class ContextStartEventHandler implements ApplicationListener<ContextStartedEvent>{
@Override
public void onApplicationEvent(ContextStartedEvent event) {
System.out.println("ApplicationContext 启动... ");
spring framework组件}
}
Test.java
import t.ApplicationContext;
import t.ConfigurableApplicationContext;
import t.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
// ApplicationContext context = new ClassPathXmlApplicationContext("l");
// fire the start event.
// ((ConfigurableApplicationContext) context).start();
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("l");
// fire the start event.
context.start();
// ...
}
}
在XML配置⽂件中,将该类为声明为Bean,以便Spring容器加载该Bean,并向其传送事件。<bean id="contextStartEventHandler" class="ContextStartEventHandler"></bean>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论