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"); } }
|