业务场景:
应用服务启动时,加载一些数据和执行一些应用的初始化动作。如:删除临时文件,清除缓存信息,读取配置文件信息,数据库连接等。
如果存在多个加载的数据,可以使用@Order注解来排序
1、创建测试类1(StartupRunner1.java)
package com.jeff.common;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value = 2)
public class StartupRunner1 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>> 服务启动执行,执行加载数据等操作 StartupRunner1 Order 2 <<<<<<<<<<<<<<<");
}
}
2、创建测试类2(StartupRunner2.java)
package com.jeff.common;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value = 1)
public class StartupRunner2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println(">>>>>>>>>>>>>>> 服务启动执行,执行加载数据等操作 StartupRunner2 Order 1 <<<<<<<<<<<<<<<");
}
}
3、控制台输出结果,数据加载的顺序与Order排序有关