文档章节

springboot的事件机制

OSC屠夫
 OSC屠夫
发布于 2016/09/30 11:29
字数 278
阅读 270
收藏 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
博文 33
码字总数 8631
作品 0
浦东
程序员
私信 提问
springboot 开发入门,及问题汇总

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

崔江昆
2015/03/18
0
30
从SpringBoot源码分析 配置文件的加载原理和优先级

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

tanliwei
2018/07/13
0
0
10分钟入门SpringBoot

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

jwfy
2018/06/14
0
0
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
2018/04/19
0
0
SpringBootBucket 2.0.4 发布,代号“傲娇的小二晶”

SpringBootBucket 自从1.0.0版本发布后就有好多人喜欢,目前码云上面star数量接近1.2k。上个月还收到了红薯签名的1000 star奖杯,这个我自己也觉得很惊讶。 由于SpringBoot 1.x官方将终止维护...

一刀
2018/09/16
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
今天
2
0
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
10
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
9
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部