SpringBoot注入靜態(tài)屬性或靜態(tài)對象的方法
SpringBoot注入靜態(tài)屬性或靜態(tài)對象
前言
我們在使用SpringBoot為一些靜態(tài)屬性或者靜態(tài)對象注入時會發(fā)現(xiàn)注入不成功。
我們可以以下這幾種方式把需要注入的值注入到靜態(tài)屬性中。
setter方式注入
代碼如下(示例):@Value與@Autowired都可以使用
@SpringBootTest(classes = Application.class) public class TestApplication { private static DaoUtil daoUtil; private static String ACTIVE; // 這里其實我們只需要一個setter方法 // 即可把springboot中的配置文件中的屬性注入到靜態(tài)屬性中 @Value("${spring.profiles.active}") public void setACTIVE( String ACTIVE) { TestApplication.ACTIVE = ACTIVE; } @Autowired public void setDaoUtil(DaoUtil daoUtil) { TestApplication.daoUtil = daoUtil; } @Test void contextLoads() { System.out.println(getActive()); System.out.println(daoUtil); } public static String getActive(){ return ACTIVE; } }
@PostConstruct init方式注入
@Autowired DaoUtil daoUtilProxy; @Value("${spring.profiles.active}") String activeProxy; private static DaoUtil daoUtil; private static String ACTIVE; @PostConstruct private void init() { daoUtil = daoUtilProxy; ACTIVE = activeProxy; }
注意
兩種方式都能成功注入對象或?qū)傩浴?注入成功的前提是屬性或?qū)ο笏诘念愂荢pringBoot容器的組件(Bean)。
// 用ide工具生成靜態(tài)對象setter方法時會自動的把static的修飾詞帶上 // 這樣也會讓注入不成功(作者的慘痛經(jīng)歷??????) // 這里我們需要把static去掉即可 public static void setACTIVE(String ACTIVE) { TestApplication.ACTIVE = ACTIVE; }
總結(jié)
我們需要可以在組件類中使用@Value或@Autowired注入靜態(tài)屬性,才能注入成功。否則不成效;
到此這篇關(guān)于SpringBoot注入靜態(tài)屬性或靜態(tài)對象的文章就介紹到這了,更多相關(guān)SpringBoot注入靜態(tài)屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 文件目錄讀寫刪除操作詳細(xì)實現(xiàn)代碼
這篇文章主要介紹了java 文件讀寫刪操作詳細(xì)實現(xiàn)代碼,需要的朋友可以參考下2017-09-09解決Java中的java.io.IOException: Broken pipe問題
這篇文章主要介紹了解決Java中 java.io.IOException: Broken pipe的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06JavaWeb使用Cookie模擬實現(xiàn)自動登錄功能(不需用戶名和密碼)
不需要填寫用戶名和密碼自動登錄系統(tǒng),其實現(xiàn)思路使用cookie模擬瀏覽器自動登錄,對cookie實現(xiàn)自動登錄功能感興趣的朋友一起學(xué)習(xí)吧2016-08-08SpringBoot淺析安全管理之基于數(shù)據(jù)庫認(rèn)證
在真實的項目中,用戶的基本信息以及角色等都存儲在數(shù)據(jù)庫中,因此需要從數(shù)據(jù)庫中獲取數(shù)據(jù)進(jìn)行認(rèn)證和授權(quán)2022-08-08基于SpringBoot實現(xiàn)Web應(yīng)用的登錄與退出功能
登錄與退出功能作為 Web 應(yīng)用中的基礎(chǔ)且重要的組成部分,直接關(guān)系到用戶的安全和隱私保護(hù),所以本文給大家介紹了基于SpringBoot實現(xiàn)Web應(yīng)用的登錄與退出功能,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下2024-04-04