Spring Boot 啟動時自動執(zhí)行代碼的幾種方式,還有誰不會??
來源:blog.csdn.net/u011291072/article/details/81813662
前言
java自身的啟動時加載方式
Spring啟動時加載方式
代碼測試
總結(jié)
前言
@PostConstruct注解實現(xiàn)。ApplicationRunner與CommandLineRunner接口去實現(xiàn)啟動后運行的功能。在這里整理一下,在這些位置執(zhí)行的區(qū)別以及加載順序。java自身的啟動時加載方式
static代碼塊
構(gòu)造方法
Spring啟動時加載方式
@PostConstruct注解
ApplicationRunner和CommandLineRunner
CommandLineRunner和ApplicationRunner。ApplicationRunner的run方法入?yún)?/span>ApplicationArguments,為CommandLineRunner的run方法入?yún)镾tring數(shù)組。何為ApplicationArguments
Provides access to the arguments that were used to run a SpringApplication.
SpringApplication.run(…)的應(yīng)用參數(shù)。Order注解
CommandLineRunner和ApplicationRunner接口時,可以通過在類上添加@Order注解來設(shè)定運行順序。代碼測試
@Component
public class TestPostConstruct {
static {
System.out.println("static");
}
public TestPostConstruct() {
System.out.println("constructer");
}
@PostConstruct
public void init() {
System.out.println("PostConstruct");
}
}
@Component
@Order(1)
public class TestApplicationRunner implements ApplicationRunner{
@Override
public void run(ApplicationArguments applicationArguments) throws Exception {
System.out.println("order1:TestApplicationRunner");
}
}
@Component
@Order(2)
public class TestCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... strings) throws Exception {
System.out.println("order2:TestCommandLineRunner");
}
}
總結(jié)
@Component注解的類,加載類并初始化對象進(jìn)行自動注入。加載類時首先要執(zhí)行static靜態(tài)代碼塊中的代碼,之后再初始化對象時會執(zhí)行構(gòu)造方法。@PostConstruct注解的方法。當(dāng)容器啟動成功后,再根據(jù)@Order注解的順序調(diào)用CommandLineRunner和ApplicationRunner接口類中的run方法。static>constructer>@PostConstruct>CommandLineRunner和ApplicationRunner.如有文章對你有幫助,
“在看”和轉(zhuǎn)發(fā)是對我最大的支持!
推薦:
點擊領(lǐng)取:151個大廠面試講解?。▓D片可上下滑動?。?nbsp;
評論
圖片
表情


