SpringBoot事件监听ApplicationListener

阅读数:162 评论数:0

跳转到新版页面

分类

python/Java

正文

一、概述

ApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext事件处理。具体参考:springboot事件机制

自定义监听器需要实现ApplicationListener接口(具体参见:其中的springboot启动过程),除了常用的Spring事件(如ContextRefreshedEvent)之外,Spring Boot在启动过程中还发送一系列其他的应用程序事件 (上下表示其发生顺序)

ApplicationStartingEvent 这个事件在Spring Boot应用开始时,且进行任何处理之前发送(除了监听器和初始化器注册之外)。
ApplicationEnvironmentPreparedEvent 这个事件在当已知要在上下文中使用Spring环境(Environment)时,在Spring上下文(context)创建之前发送。
ApplicationContextInitializedEvent 这个事件在当Spring应用上下文(ApplicationContext)准备好了,并且应用初始化器(ApplicationContextInitializers)已经被调用,在bean的定义(bean definitions)被加载之前发送。
ApplicaitonPreparedEvent 这个事件是在Spring上下文(context)刷新之前,且在bean的定义(bean definitions)被加载之后发送。
ApplicationStartedEvent 这个事件是在Spring上下文刷新之后,且在application/command-line runners被调用之前发送。
ApplicationReadyEvent 这个事件在application/command-line runners调用之后发送。
ApplicationFailedEvent 这个事件在应用启动异常时进行发送

 

二、使用示例

@Component
public class MPushApplicationReadyListener implements ApplicationListener<ApplicationReadyEvent> {

	@Autowired
	private MPushProperties mPushProperties;

	@Override
	public void onApplicationEvent(ApplicationReadyEvent event) {


	}
}

 




相关推荐

一、概述 springboot中有两种方式使用kafka时,直接使用kafka-client连接kafka服务;另一种是使用spring-kafka框架来连接kafka。 1、版本兼容 使用时要注意版

当然可以自己写redis的工具类,或者使用第三方开源jar包或代码,这里使用spring boot的集成类。 一、pom依赖 <dependency> <gro

websocket协议基于tcp的网络协议,它实现浏览器与器全双工通信。 spring boot2 +websocket 1、添加依赖 <pre clas

背景: 之前用spring boot+mybatis+oracle,现在要改成spring boot_mybatis+postgresql。 为了想让一套代码即可

共同点 都是用来表示Spring某个类是否可以接收HTTP请求。 不同点 @Controller标识一个spring类是Spring MVC c

系统异常捕获 参见:spring boot 2 全局异常处理 @ControllerAdvice(annotations = {RestController.class}) public class

从SSH(Structs/Spring/Hibernate)到SSM(SpringMVC/Spring/MyBatis),到现在一个S(Spring)就够的年代,可见Spring越来越重要了。<

@ConditionalOnMissingBean只能在@Bean注解的方法上使用。 可以给该注解传入参数例如@ConditionOnMissingBean(name = "exa

2.4版本之前 在之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样: spring: profiles: "dev" name: dev.di

在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。   同时,SpringBoot也支持Undertow容器,Undert