ApplicationRunner CommandLineRunner使用

這兩個接口均需要實現一個run方法(參數不同),實在spring 啓動類執行之後第一個執行的類,可以用來初始化一些預置條件之類的。

使用限制:

1.需要實現上述的任意一個接口

2.該接口的實現類實在運行期間繼啓動類執行後第一個執行的類,但在啓動過程中(編譯構建階段)優先級並不高(具體不詳)。

例如:

實現了上述接口的類的run方法獲取了配置文件中的字段a,

但 有這麼一個bean 用到了a變量,就會拋異常

@Bean

public User getU(){

if (a==null){

throw MyExceptionxxxxx

}

}

獲取不到。debug時會發現,先走的@Bean的創建,而不是上述的實現類,因此上述的實現類只會在運行期間初始化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章