文档章节

springboot的事件机制

OSC屠夫
 OSC屠夫
发布于 2016/09/30 11:29
字数 278
阅读 236
收藏 1

#Applicantion Event种类 输入图片说明

所有的Event都继承SpringApplicationEvent

输入图片说明

##ApplicationEnvironmentPreparedEvent

监听ApplicationEnvironmentPreparedEvent的事件

spring boot正在启动中环境变量注入和修改之前,在这时候可以修改application的内容

public class EnvPreListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent>{
    private  final Logger logger = LoggerFactory.getLogger(EnvPreListener.class);
    @Override
    public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
        ConfigurableEnvironment env = event.getEnvironment();
        SpringApplication app = event.getSpringApplication();
        app.setBannerMode(Banner.Mode.OFF);
        logger.info("EnvPreListener order : {0}",env);
    }
}

##ApplicationPreparedEvent 监听ApplicationPreparedEvent的事件

spring boot application正在启动中,ApplicationContext已就绪但是未刷新

public class AppPreLinstener implements ApplicationListener<ApplicationPreparedEvent> {
    private  final Logger logger = LoggerFactory.getLogger(AppPreLinstener.class);

    @Override
    public void onApplicationEvent(ApplicationPreparedEvent event) {
        logger.info("AppPreLinstener order");


        Set<ApplicationListener<?>> listenerSet = event.getSpringApplication().getListeners();
        listenerSet.forEach(set->{
        });
    }
}

##ApplicationStartedEvent 监听ApplicationStartedEvent的事件

spring boot启动开始时执行的事件

public class AppStartLinstener implements ApplicationListener<ApplicationReadyEvent>{
    private final Logger logger = LoggerFactory.getLogger(AppStartLinstener.class);

    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        logger.info("AppStartLinstener order");
    }
}

##ApplicationReadyEvent 监听ApplicationReadyEvent的事件 spring boot准备就绪时执行的事件

public class AppReadyLinstener implements ApplicationListener<ApplicationReadyEvent> {

    private  final Logger logger = LoggerFactory.getLogger(AppReadyLinstener.class);

    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        logger.info("AppReadyLinstener order");
    }

}

##ApplicationFailedEvent spring boot执行失败事件

##注册监听事件 在调用springApplication中也可以调用addListener方法

@Configuration
@EnableConfigServer
public class ConfigServer {
    public static void main(String args[]){
        new SpringApplicationBuilder(ConfigServerApplication.class)
                .properties("spring.config.name=configserver")
                .listeners(new AppPreLinstener(),new EnvPreListener(),new AppStartLinstener(),new AppReadyLinstener())
                .run(args);
    }
}

© 著作权归作者所有

共有 人打赏支持
上一篇: rabbitmq安装
下一篇: HashMap源码解析
OSC屠夫
粉丝 11
博文 32
码字总数 8390
作品 0
浦东
程序员
私信 提问
springboot 开发入门,及问题汇总

1 . springboot简单介绍(http://projects.spring.io/spring-boot/) 现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而springboot的出现解 决了这一问...

崔江昆
2015/03/18
0
30
10分钟入门SpringBoot

SpringBoot是基于spring框架衍生的一种新的微服务框架,如果对Spring有一定了解的同学肯定知道在Spring中需要配置各种xml文件完成bean的注册操作,随着服务越来越多,配置就变得越来越复杂,...

jwfy
06/14
0
0
Spring Boot 全家桶 - SpringBootBucket

Spring Boot 现在已经成为Java 开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。 本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通过“一...

一刀
03/05
0
1
Springboot 2.0 - 集成redis

最近在入门SpringBoot,然后在感慨 SpringBoot较于Spring真的方便多时,顺便记录下自己在集成redis时的一些想法。 从springboot官网查看redis的依赖包 操作redis redis的包中提供了两个可以操...

Java烂猪皮
10/04
0
0
从SpringBoot源码分析 配置文件的加载原理和优先级

本文从SpringBoot源码分析 配置文件的加载原理和配置文件的优先级 跟入源码之前,先提一个问题: SpringBoot 既可以加载指定目录下的配置文件获取配置项,也可以通过启动参数(VM Options)传...

tanliwei
07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
41分钟前
1
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
45分钟前
2
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部