SpringBoot-1.ApplicationListener分析

目录

前言

应用

前言

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.启动程序

当容器初始化完毕后,发布事件,事件监听器进行接收。


版权声明:本文为qq_39099625原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。