CommandLineRunner

  • 定义初始化类 MyCommandLineRunner
  • 实现 CommandLineRunner接口,并实现它的 run()方法,在该方法中编写初始化逻辑
  • 注册成Bean,添加 @Component注解即可
  • 示例代码如下:
@Component
public class MyCommandLineRunner implements CommandLineRunner { @Override
public void run(String... args) throws Exception {
System.out.println("...init resources by implements CommandLineRunner");
} }

  实现了 CommandLineRunner 接口的 Component 会在所有 Spring Beans 初始化完成之后, 在 SpringApplication.run() 执行之前完成。下面通过加两行打印来验证我们的测试。

ApplicationRunner

  • 定义初始化类 MyApplicationRunner
  • 实现 ApplicationRunner接口,并实现它的 run()方法,在该方法中编写初始化逻辑
  • 注册成Bean,添加 @Component注解即可
  • 示例代码如下:
@Component
public class MyApplicationRunner implements ApplicationRunner { @Override
public void run(ApplicationArguments applicationArguments) throws Exception {
System.out.println("...init resources by implements ApplicationRunner");
} }

  可以看到,通过实现 ApplicationRunner 接口,和通过实现 CommandLineRunner 接口都可以完成项目的初始化操作,实现相同的效果。两者之间唯一的区别是 run()方法中自带的形参不相同,在 CommandLineRunner 中只是简单的String... args形参,而 ApplicationRunner 则是包含了 ApplicationArguments 对象,可以帮助获得更丰富的项目信息。

@PostConstruct

使用 @PostConstruct 注解同样可以帮助我们完成资源的初始化操作,前提是这些初始化操作不需要依赖于其它Spring beans的初始化工作。

最新文章

  1. 贫下中农版jQuery
  2. ruby学习总结03
  3. Tkinter教程之Message篇
  4. 比较X与Y的大小,绝对精准!!!!!!
  5. Maven3.0 服务器配置搭建
  6. Theme Section - HDU 4763(KMP)
  7. python初学笔记(三)
  8. 最近学习了下BI(商业智能)做报表
  9. OPENCV形态学操作1
  10. iOS内购图文流程(2017)
  11. hiernate-session
  12. day16,模块 , 用户管理系统 , 购物车程序 , 分页显示.
  13. JVM--01
  14. Oracle Sequence创建与使用
  15. shell中脚本调试----学习
  16. 在windows中把一个文件夹打成war包
  17. JS自学笔记03
  18. sublime汉化步骤记录
  19. leetcode1021
  20. HttpClient request payload post请求

热门文章

  1. Python【集合】、【函数】、【三目运算】、【lambda】、【文件操作】
  2. 大白话详解大数据HBase核心知识点,老刘真的很用心(3)
  3. opencv-python imread、imshow浏览目录下的图片文件
  4. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项列图标的访问方法
  5. Combiner-Reduce之前处理过程
  6. React跳转路由传参3种方法和区别
  7. APIO2012 苦无 Kunai
  8. Java集合源码分析(二)——ArrayList
  9. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)
  10. 设置RAC DB归档