spring boot之SpringApplication 事件监听
程序员文章站
2023-12-21 13:36:52
spring application listener
在 spring 框架中,有多种事件, 这些时间会在不同的运行时刻发布,来通知监听者。本文仅仅介绍 sprin...
spring application listener
在 spring 框架中,有多种事件, 这些时间会在不同的运行时刻发布,来通知监听者。本文仅仅介绍 springapplicationevent 的事件的监听。
事件类型
eventtype | 发布时间 |
---|---|
applicationcontextinitializedevent | 在 springapplication正在启动, applicationcontext 已经准备好了,applicationcontextinitializers 被调用, bean definitions 被加载之前 |
applicationstartingevent | 在一次启动之前发布 |
applicationenvironmentpreparedevent | 在 environment 准备好之后,会有 context 去使用这一 environment, 会在 context 创建之前发出 |
applicationpreparedevent | 会在 bean definitions 加载之后,refresh 之前发布 |
applicationstartedevent | context 更新之后,任何应用或命令行启动调用之前 |
applicationreadyevent | 任何应用或命令行启动调用之后发布,说明应用已经可以被请求了 |
applicationfailedevent | 启动发生有异常时发步 |
如何监听
监听器需要使用 org.springframework.context.applicationlistener 这个接口的实例, 其声明如下:
@functionalinterface public interface applicationlistener<e extends applicationevent> extends eventlistener { /** * handle an application event. * @param event the event to respond to */ void onapplicationevent(e event); }
需要使用 springapplication.addlisteners(…) 或 springapplicationbuilder.listeners(…) 来添加监听器。也可以在 meta-inf/spring.factories 文件中配置:org.springframework.context.applicationlistener=com.example.project.mylistener。
例子:
public class startingeventlistener implements applicationlistener<applicationstartingevent> { @override public void onapplicationevent(applicationstartingevent applicationstartingevent) { system.out.println("called own starting listener"); system.out.println(applicationstartingevent.getclass()); } }
@springbootapplication public class demoapplication { public static void main(string[] args){ springapplication application = new springapplication(demoapplication.class); application.addlisteners(new startingeventlistener()); application.run(args); } }
终端运行 jar 包:
$ java -jar build/libs/springlisteners-0.0.1-snapshot.jar called own starting listener class org.springframework.boot.context.event.applicationstartingevent . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: spring boot :: (v2.1.3.release)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
spring boot之SpringApplication 事件监听
-
Spring Boot基础入门之基于注解的Mybatis
-
Android开发之Button事件实现与监听方法总结
-
深入Spring Boot之ClassLoader的继承关系和影响
-
Spring Boot实战之数据库操作的示例代码
-
spring boot开发遇到坑之spring-boot-starter-web配置文件使用教程
-
Android开发之Button事件实现与监听方法总结
-
SpringBoot入坑笔记之spring-boot-starter-web 配置文件的使用
-
深入Spring Boot之ClassLoader的继承关系和影响
-
Spring Boot实战之数据库操作的示例代码