1. 程式人生 > >SpringBoot使用@Value給靜態變數注入值

SpringBoot使用@Value給靜態變數注入值

SpringBoot中使用@Value()只能給普通變數注入值,不能直接給靜態變數賦值

例如,application-dev.properties 配置檔案有如下配置:

給普通變數賦值時,直接在變數宣告之上新增@Value()註解即可,如下所示:

當要給靜態變數注入值的時候,若是在靜態變數宣告之上直接新增@Value()註解是無效的,例如:

雖然沒有編譯和執行上的報錯,經除錯可知這種註解方式mailUsername、mailPassword、mailHost的值都是null,也就是說直接給靜態變數讀取配置檔案是無效的,如下所示:

若要給靜態變數賦值,可以使用set()方法,其中需要在類上加入@Component註解,方法名(例如setMailUsername)和引數名(例如username)可以任意命名,如下所示:

除錯結果如下: