一、方式一,使用ApplicationListener<E extends ApplicationEvent>监听ContextRefreshedEvent事件

/**
* @author zhangboqing
* @date 2019-11-03
*/
@Component
public class MyApplicationListener implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
private MyService myService; @Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
System.out.println(">>>>>>>>>>>>>> ApplicationListener:" + myService.sayHello());
}
}

二、方式二,使用SmartInitializingSingleton

/**
* @author zhangboqing
* @date 2019-11-03
*/
@Component
public class MySmartInitializingSingleton implements SmartInitializingSingleton {
@Autowired
private MyService myService; @Override
public void afterSingletonsInstantiated() {
System.out.println(">>>>>>>>>>>>>> SmartInitializingSingleton:" + myService.sayHello());
}
}

三、方式三,使用SmartLifecycle

/**
* @author zhangboqing
* @date 2019-11-03
*/
@Component
public class MySmartLifecycle implements SmartLifecycle { @Autowired
private MyService myService; @Override
public void start() {
System.out.println(">>>>>>>>>>>>>> SmartLifecycle:" + myService.sayHello());
} @Override
public boolean isAutoStartup() {
return true;
} @Override
public void stop(Runnable callback) { } @Override
public void stop() { } @Override
public boolean isRunning() {
return false;
} @Override
public int getPhase() {
return ;
}
}

四、方式四,使用ApplicationRunner

/**
* @author zhangboqing
* @date 2019-11-07
*/
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Autowired
private MyService myService; @Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(">>>>>>>>>>>>>> ApplicationRunner:" + myService.sayHello());
}
}

五、方式五,使用CommandLineRunner

/**
* @author zhangboqing
* @date 2019-11-07
*/
@Component
public class MyCommandLineRunner implements CommandLineRunner { @Autowired
private MyService myService; @Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>> CommandLineRunner:" + myService.sayHello());
}
}

【Spring Boot】Spring Boot之五种容器启动后进行相关应用初始化操作方法的更多相关文章

  1. spring boot, 容器启动后执行某操作

    常有在spring容器启动后执行某些操作的需求,现做了一个demo的实现,做一下记录,也希望可以给需要的同学提供参考. 1.spring启动后,以新线程执行后续需要的操作,所以执行类实现Runnabl ...

  2. Spring源码分析专题 —— IOC容器启动过程(上篇)

    声明 1.建议先阅读<Spring源码分析专题 -- 阅读指引> 2.强烈建议阅读过程中要参照调用过程图,每篇都有其对应的调用过程图 3.写文不易,转载请标明出处 前言 关于 IOC 容器 ...

  3. web容器启动后自动执行程序的几种方式比较

    1.       背景 1.1.       背景介绍 在web项目中我们有时会遇到这种需求,在web项目启动后需要开启线程去完成一些重要的工作,例如:往数据库中初始化一些数据,开启线程,初始化消息队 ...

  4. Centos7 docker容器启动后添加端口映射

    docker容器启动后添加端口映射的两种方法: 一.通过修改防火墙策略添加端口映射 docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时, ...

  5. docker容器启动后添加端口映射

    DOCKER 给运行中的容器添加映射端口 方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep ...

  6. web容器启动加载WebApplicationContext和初始化DispatcherServlet

    原文地址:http://blog.csdn.net/zghwaicsdn/article/details/51186915 ContextLoaderListener监听器,加载ROOT WebApp ...

  7. @EnableAsync annotation metadata was not injected Spring容器启动后访问Servlet报错

    @EnableAsync annotation metadata was not injected 2015年12月20日 20:06:54 7570 在初始化spring事务部分碰到该错误, 详细错 ...

  8. docker 容器启动后立马退出的解决方法

    原因: 容器同时只能管理一个进程,如果这个进程结束了容器就退出了,但是不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须要有一个进程在前台执行.   解决方案: 启动脚本最后一 ...

  9. zookeeper启动后没有相关进程

    查看状态报错,报错,百度硕士nc问题,让看.out文件,但是这哥文件是空的,那就看log 016-12-15 14:08:19,355 [myid:] - INFO [main:QuorumPeer$ ...

随机推荐

  1. Linux中fork()函数详解(转载)

    linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  2. 用JQuery内置animate方法实现数字递增动画

    平时使用animate只用于dom节点的动画,无意间发现JQuery内置的animate方法可实现数字动画,JQ还是挺强大的! 动画效果为从0一步步跳到84,代码如下: $({ // 起始值 coun ...

  3. fping 命令说明

    参数: -a 表示只在输出报告⾥列出当前存活的IP -d 解析主机名 -f 参数表示读⼊这个文件 -s 显示汇总信息 -g 指定⽹网段

  4. 第02组 Alpha冲刺(3/6)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 摸鱼 提交记录(全组共用) 接下来的计划 沟通前后端成员,监督.提醒他们尽快完成各自的进度 学习如何评估代码质量 准备Al ...

  5. salt修改主机名

    #!/bin/bash if [ $# != 2 ];then echo "bash $0 old_hostname new_hostname" exit 0 fi old_hos ...

  6. 【mysql】'XXX.XXX.XXX' isn't in GROUP BY问题解决

    原因是mysql的版本低于5.7,使用的GROUP BY 例如:数据库名称为db,表为t,sql为SELECT id, user_name FROM sys_user GROUP BY id 报错为 ...

  7. | C语言I作业03

    | C语言I作业03 标签: 18软件 李煦亮 问题 答案 这个作业属于那个课程 C语言程序设计I 这个作业要求在哪里 https://edu.cnblogs.com 我在这个课程的目标是 学会和掌握 ...

  8. [转帖]Mysql各版本介绍及下载

    Mysql各版本介绍及下载 http://blog.itpub.net/12679300/viewspace-1251661/ 原创 MySQL 作者:wzq609 时间:2014-08-15 10: ...

  9. [转帖]美团在Redis上踩过的一些坑-2.bgrewriteaof问题

    美团在Redis上踩过的一些坑-2.bgrewriteaof问题 博客分类: redis 运维 aofaof rewrite  转载请注明出处哈:http://carlosfu.iteye.com/b ...

  10. 【转】AXI_Lite 总线详解

    目录: · 1.前言 · 2.AXI总线与ZYNQ的关系 · 3 AXI 总线和 AXI 接口以及 AXI 协议 · 3.1 AXI 总线概述 · 3.2 AXI 接口介绍 ·3.3 AXI 协议概述 ...