spring boot之SpringApplication 事件监听
程序员文章站
2024-02-26 17:37:04
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(五)之跨域、自定义查询及分页
-
Spring Boot(四)之使用JWT和Spring Security保护REST API
-
Spring Boot(三)之找回熟悉的Controller,Service
-
spring boot实战之使用JSP的示例
-
spring boot(一)之入门篇
-
Spring Boot(二)之web综合开发
-
spring boot(三)之Spring Boot中Redis的使用
-
spring boot(四)之thymeleaf使用详解
-
Spring Boot 实例代码之通过接口安全退出