springboot实现启动时执行指定类代码
时间: 2024-09-11 11:18:02 浏览: 41
SpringBoot如何指定某些类优先启动
在Spring Boot中,如果需要在应用启动时执行某个类的代码,可以通过实现`CommandLineRunner`或`ApplicationRunner`接口来完成。这两种接口都提供了`run`方法,该方法会在Spring Boot应用启动完成之后被调用。
以下是一个简单的实现示例:
1. 首先,创建一个类实现`CommandLineRunner`或`ApplicationRunner`接口:
```java
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class MyStartupRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
// 在这里编写启动时需要执行的代码
System.out.println("MyStartupRunner正在执行,参数:" + args);
}
}
```
2. 或者,如果你选择实现`ApplicationRunner`接口,其使用方法和`CommandLineRunner`类似,只不过其`run`方法接受的参数是`ApplicationArguments`类型:
```java
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
// 在这里编写启动时需要执行的代码
System.out.println("MyApplicationRunner正在执行,参数:" + args.getOptionNames());
}
}
```
3. 在Spring Boot的主类中,或者通过配置类启用你的`@Component`,确保Spring能够扫描到并创建该类的实例。
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
这样,当Spring Boot应用启动完成后,`MyStartupRunner`或`MyApplicationRunner`中定义的`run`方法就会被执行。
阅读全文