SpringBoot启动后执行某个方法的三种实现方式

SpringBoot启动后执行某个方法的三种实现方式

第一种方式:@PostConstruct 注解

1
2
3
4
@PostConstruct
public void test(){
System.out.println("Hello World");
}

第二种方式:实现 ApplicationRunner 接口的 run 方法

1
2
3
4
5
6
7
8
9
10
11
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("Hello World");
}
}

第三种方式:实现 CommandLineRunner 接口的 run 方法

1
2
3
4
5
6
7
8
9
10
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

@Component
public class MyCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... args) throws Exception{
System.out.println("Hello World");
}
}

这三种方式的实现都很简单,直接实现了相应的接口就可以了。记得在类上加@Component注解。如果想要指定启动方法执行的顺序,可以通过 @Order 注解的方式来实现。

@Order 注解实现方式:

1
2
3
4
5
6
7
8
9
10
11
12
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
import org.springframework.core.annotation.Order;

@Component
@Order(value = 1)
public class MyCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... args) throws Exception{
System.out.println("Hello World");
}
}
文章作者: 晓风残月
文章链接: https://blog.shofcy.cn/2020/01/03/SpringBootStartMethod/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 晓风残月Shofcy
打赏
  • 微信
  • 支付宝

评论