SpringBoot中CommandLineRunner和AplicationRunner

在SpringBoot开发项目的时候,有时需要在Spring容器启动的时候执行一系列操作。在SpringBoot中提供了两个接口来实现这样的需求。
这两个接口为:CommandLineRunner和ApplicationRunner

这两个都有run方法,但是CommandLineRunner的参数为String数组,ApplicationRunner为ApplicationArguments。

CommandLineRunnerde实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class MyStartUpCommandLineRunner implements CommandLineRunner {

private Logger logger =LoggerFactory.getLogger(MyStartUpCommandLineRunner.class);
@Override
public void run(String... strings) throws Exception {

logger.info("------>MyStartUpCommandLineRunner<-----");
}
}

ApplicationRunner的实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

@Component
public class MYStartUpApplicationRunner implements ApplicationRunner {


private Logger logger = LoggerFactory.getLogger(MYStartUpApplicationRunner.class);
@Override
public void run(ApplicationArguments applicationArguments) throws Exception {

logger.info("------>MYStartUpApplicationRunner<------");
}
}

两个接口可以同时在一个项目中使用,存在多个的时候可以用@Order()注解来定义优先级。

-------------本文结束感谢您的阅读-------------