SpringBoot中的ApplicationListener事件监听器使用详解

 更新时间:2023年11月15日 08:42:27   作者:阿孟呀  
这篇文章主要介绍了SpringBoot中的ApplicationListener事件监听器使用详解,ApplicationListener是应用程序的事件监听器,继承自java.util.EventListener标准接口,采用观察者设计模式,需要的朋友可以参考下

ApplicationListener

ApplicationListener是应用程序的事件监听器,继承自java.util.EventListener标准接口,采用观察者设计模式。

从spring3.0开始,ApplicationListener可以指定要监听的事件类型,当spring的上下文环境ApplicationContext时,当指定事件发布的时候,对应事件的事件监听器将被调用。

使用ApplicationListener需要三元素,事件,监听,事件发布。

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

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

到此这篇关于SpringBoot中的ApplicationListener事件监听器使用详解的文章就介绍到这了,更多相关ApplicationListener事件监听器使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java字符串split方法的坑及解决

    Java字符串split方法的坑及解决

    这篇文章主要介绍了Java字符串split方法的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 一文总结RabbitMQ中的消息确认机制

    一文总结RabbitMQ中的消息确认机制

    RabbitMQ消息确认机制指的是在消息传递过程中,发送方发送消息后,接收方需要对消息进行确认,以确保消息被正确地接收和处理,本文为大家整理了RabbitMQ中的消息确认机制,需要的可以参考一下
    2023-06-06
  • Java常用的数据脱敏方法(手机、邮箱、身份证号)

    Java常用的数据脱敏方法(手机、邮箱、身份证号)

    这篇文章主要给大家介绍了关于Java常用的数据脱敏(手机、邮箱、身份证号)的相关资料,信息脱敏对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,需要的朋友可以参考下
    2023-07-07
  • Java中图像锐化操作的方法详解

    Java中图像锐化操作的方法详解

    这篇文章主要给大家介绍了关于Java中图像锐化操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • SpringBoot3整合Hutool-captcha实现图形验证码

    SpringBoot3整合Hutool-captcha实现图形验证码

    在整合技术框架的时候,想找一个图形验证码相关的框架,看到很多验证码的maven库不再更新了或中央仓库下载不下来,还需要多引入依赖,后面看到了Hutool图形验证码(Hutool-captcha)中对验证码的实现,所以本文介绍了SpringBoot3整合Hutool-captcha实现图形验证码
    2024-11-11
  • springboot自定义Starter过程解析

    springboot自定义Starter过程解析

    这篇文章主要介绍了springboot自定义Starter过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解Java中自定义注解的使用

    详解Java中自定义注解的使用

    Annontation是Java5开始引入的新特征,中文名称叫注解,它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。本文主要介绍了自定义注解的使用,希望对大家有所帮助
    2023-03-03
  • Java探索之string字符串的应用代码示例

    Java探索之string字符串的应用代码示例

    这篇文章主要介绍了Java探索之string字符串的应用代码示例,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • 关于Logback+MyBatis日志输出问题的一些思考

    关于Logback+MyBatis日志输出问题的一些思考

    这篇文章主要介绍了关于Logback+MyBatis日志输出问题的一些思考,具有很好的参考价值,希望对大家有所帮助,
    2023-09-09
  • java判断空的实现方法

    java判断空的实现方法

    字符串判断空有两种情况:一个是分配了内存但值为空(""),另一个是未分配内存(null),判断方法包括isEmpty()和isBlank(),其中isBlank()还可以过滤空格、制表符,对于列表,判断不为空可以使用list!=null && !list.isEmpty()或list!=null && list.size()>0
    2024-09-09

最新评论