在实际的开发场景中,经常需要在运行环境之前执行一些类似于读取配置文件、数据库连接操作等。Spring Boot提供了ApplicationRunner和CommandLineRunner来帮助我们实现这些需求。
时机:他们执行的时机是为容器启动完成的时候;
实现:都需要去实现这两个接口的run方法;
区别:ApplicationRunner中的run方法参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组;
示例:
ApplicationRunner
package com.zm.lesson1;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
public class AppRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("测试ApplicationRunner接口,参数:" + args);
}
}
CommandLineRunner
package com.zm.lesson1;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
public class CommandRunner implements CommandLineRunner {
@Override
public void run(String... strings) throws Exception {
System.out.println("测试ApplicationRunner接口,参数:" + Arrays.toString(strings));
}
}