目录
前言
ApplicationListener是应用程序的事件监听器,继承自java.util.EventListener标准接口,采用观察者设计模式。
从spring3.0开始,ApplicationListener可以指定要监听的事件类型,当spring的上下文环境ApplicationContext时,当指定事件发布的时候,对应事件的事件监听器将被调用。
使用ApplicationListener需要三元素,事件,监听,事件发布。
应用
1.新建事件继承自ApplicationEvent .
public class TestApplicationEvent extends ApplicationEvent {
/**
* Create a new ApplicationEvent.
*
* @param test the object on which the event initially occurred (never {@code null})
*/
public TestApplicationEvent(TestApplication test) {
super(test);
}
}
2.新建监听器
实现ApplicationListener指定要监听的事件类型,监听器必须注入容器当中可以使用注解方式(例如:@Component),或者在资源路径下新建META-INF/spring.factories文件导入
@Component
public class TestApplicationListener implements ApplicationListener<TestApplicationEvent> {
@Override
public void onApplicationEvent(TestApplicationEvent event) {
System.out.println(event.getSource());
}
}
3.当spring应用上下文环境初始化完毕,进行事件的发布
@SpringBootApplication
public class CommonsTestApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication
.run(CommonsTestApplication.class, args);
TestApplication testApplication = new TestApplication();
testApplication.setName("zhangsan");
testApplication.setAge(23);
TestApplicationEvent testApplicationEvent = new TestApplicationEvent(testApplication);
applicationContext.publishEvent(testApplicationEvent);//事件发布时,指定的监听器就进行接收
}
}
4.启动程序
当容器初始化完毕后,发布事件,事件监听器进行接收。