這兩個接口均需要實現一個run方法(參數不同),實在spring 啓動類執行之後第一個執行的類,可以用來初始化一些預置條件之類的。
使用限制:
1.需要實現上述的任意一個接口
2.該接口的實現類實在運行期間繼啓動類執行後第一個執行的類,但在啓動過程中(編譯構建階段)優先級並不高(具體不詳)。
例如:
實現了上述接口的類的run方法獲取了配置文件中的字段a,
但 有這麼一個bean 用到了a變量,就會拋異常
@Bean
public User getU(){
if (a==null){
throw MyExceptionxxxxx
}
}
獲取不到。debug時會發現,先走的@Bean的創建,而不是上述的實現類,因此上述的實現類只會在運行期間初始化。