CommandLineRunner接口中run():
@FunctionalInterface
public interface CommandLineRunner {
void run(String... args) throws Exception;
}
使用时我们需要实现接口并实现run()方法
@SpringBootApplication
public class Application implements CommandLineRunner {
@Resource
private HelloService helloService;
public static void main(String[] args) {
System.out.println("准备创建容器对象");
ApplicationContext ac=SpringApplication.run(Application.class, args);
HelloService helloService=(HelloService) ac.getBean("helloService");
System.out.println("容器对象创建之后");
System.out.println(helloService.sayHello("李四"));
}
@Override
//执行时机为容器启动完成的时候
public void run(String... args) throws Exception {
//可做自定义的操作,比如读取文件,数据库等
System.out.println("在容器对象创建好,执行的方法");
System.out.println(helloService.sayHello(":张三"));
}
}
执行结果:
由执行结果可以看出,run方法的执行时机为容器启动完成时,即容器创建完成时