如果想在 SpringApplication 启动后需要运行某些特定代码,可以通过实现 ApplicationRunner 或 CommandLineRunner 接口。 这两个接口以的工作方式相同,并提供单个 run 方法,该方法在 SpringApplication.run(…)方法结束之前被调用。
CommandLineRunner
CommandLineRunner 接口提供了访问应用程序参数的方式,即通过字符串数组访问。
接口源码
1 |
|
例子: 程序启动后输出 CommandLineRunner
1 |
|
输出结果:
1 |
|
ApplicationRunner
ApplicationRunner 通过 ApplicationArguments 接口访问程序参数。
接口源码
1 |
|
例子: 程序启动后输出 ApplicationRunner
1 |
|
指定运行顺序
如果程序中定义了必须以特定顺序调用的多个 CommandLineRunner 或 ApplicationRunner bean,则还可以实现 org.springframework.core.Ordered 接口或使用 org.springframework.core.annotation.Order 注解。
1 |
|
1 |
|
输出结果:
1 |
|