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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿孟呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值