您好,登錄后才能下訂單哦!
本篇內容介紹了“springboot怎么靜態加載@configurationProperties”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
平時開發,基本不改變的常量我們都放在了配置項里,如properties或yml文件里,這個時候為了只在啟動時候進行加載。如何做呢?
我們通過springboot的 @ConfigurationProperties 注解和static靜態化對應屬性進行。
但如果操作不當,會導致加載的數據為空,至于為什么,看下面的案例。
//錯誤1:get\set都是靜態方法 @Component @ConfigurationProperties(prefix = "mobile") public class MobileConfig { public static Integer preview; public static Integer getPreview() { return preview; } public static void setPreview(Integer preview) { MobileConfig.preview = preview; } }
//錯誤2:跟第一種差不多,只是用了lombok注解代替了get\set方法,get\set也都是靜態方法 @Data @Component @ConfigurationProperties(prefix = "mobile") public class MobileConfig { public static Integer preview; }
@Component @ConfigurationProperties(prefix = "mobile") public class MobileConfig { public static Integer preview; public static Integer getPreview() { return preview; } public void setPreview(Integer preview) { MobileConfig.preview = preview; } }
@Data @Component @ConfigurationProperties(prefix = "mobile") public class MobileConfig { public static Integer preview; public void setPreview(Integer preview) { MobileConfig.preview = preview; } }
spring在注入的時候,需要調用set 方法,如果這個方法是靜態方法,就沒法動態注入了,所以只需要把get方法加入static作為靜態方法即可,如果用了@Data,只需要重寫set方法即可。
“springboot怎么靜態加載@configurationProperties”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。