Spring Boot中初始化资源的几种方式
2024-10-21 15:55:36
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的初始化工作。
最新文章
- 贫下中农版jQuery
- ruby学习总结03
- Tkinter教程之Message篇
- 比较X与Y的大小,绝对精准!!!!!!
- Maven3.0 服务器配置搭建
- Theme Section - HDU 4763(KMP)
- python初学笔记(三)
- 最近学习了下BI(商业智能)做报表
- OPENCV形态学操作1
- iOS内购图文流程(2017)
- hiernate-session
- day16,模块 , 用户管理系统 , 购物车程序 , 分页显示.
- JVM--01
- Oracle Sequence创建与使用
- shell中脚本调试----学习
- 在windows中把一个文件夹打成war包
- JS自学笔记03
- sublime汉化步骤记录
- leetcode1021
- HttpClient request payload post请求
热门文章
- Python【集合】、【函数】、【三目运算】、【lambda】、【文件操作】
- 大白话详解大数据HBase核心知识点,老刘真的很用心(3)
- opencv-python imread、imshow浏览目录下的图片文件
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项列图标的访问方法
- Combiner-Reduce之前处理过程
- React跳转路由传参3种方法和区别
- APIO2012 苦无 Kunai
- Java集合源码分析(二)——ArrayList
- Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)
- 设置RAC DB归档