SpringBoot通過@Value實(shí)現(xiàn)給靜態(tài)變量注入值詳解
一、簡介
SpringBoot
中給普通變量注入值只需在變量上添加 @Value
注解即可。
application.properties
配置文件有如下配置:
mail.name=admin@163.com
main.pwd=admin123
給普通變量賦值時(shí),直接在變量聲明之上添加 @Value()
注解即可。
@Value("${mail.name:admin@163.com}") private String mailName; @Value("${mail.pwd:admin123}") private String mailPwd;
注:需要在類上添加 @Component
注解。
當(dāng)要給 靜態(tài)變量
注入值的時(shí)候,若是在靜態(tài)變量聲明之上直接添加@Value()
注解是無效的。
@Value("${mail.name:admin@163.com}") private static String mailName; @Value("${mail.pwd:admin123}") private static String mailPwd;
雖然在編譯和運(yùn)行上沒有報(bào)錯(cuò),但是mailName、mailPwd的值都是NULL。
那么如何給靜態(tài)變量注入值呢?
二、@Value給靜態(tài)變量注入值
方案一
- set()方法設(shè)置
@Component public class MailInfo{ public static String mailName; public static String mailPwd; @Value("${mail.name:admin@163.com}") public void setMailName(String name){ mailName = name; } @Value("${mail.pwd:admin123}") public void setMailPwd(String pwd){ mailPwd = pwd; } }
注:需要在類上加入 @Component
注解,方法名 setMailName
和參數(shù)名 name
可以任意命名。
方案二
- @PostConstruct注解修飾的方法中進(jìn)行賦值
@Component public class MailInfo{ @Value("${mail.name:admin@163.com}") public String preMailName; @Value("${mail.pwd:admin123}") public String preMailPwd; public static String mailName; public static String mailPwd; @PostConstruct public void init(){ mailName = preMailName; mailPwd = preMailPwd; } }
三、總結(jié)
- Spring不允許/不支持把值注入到
靜態(tài)變量
中; - Spring的
@Value
依賴注入是依賴set()
方法; set()
方法是普通的對(duì)象方法;static
變量是類的屬性,static沒有 set() 方法;
到此這篇關(guān)于SpringBoot通過@Value實(shí)現(xiàn)給靜態(tài)變量注入值詳解的文章就介紹到這了,更多相關(guān)SpringBoot @Value內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中使用qsort對(duì)類進(jìn)行排序的操作代碼
這篇文章主要介紹了JAVA中如何使用qsort對(duì)類進(jìn)行排序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09Java中通過ZipOutputStream類如何將多個(gè)文件打成zip
ZipOutputStream?是Java中用于創(chuàng)建ZIP文件的類,它是?java.util.zip?包中的一部分,通過使用?ZipOutputStream?,可以將多個(gè)文件壓縮到一個(gè)ZIP文件中,這篇文章主要介紹了Java中(ZipOutputStream)如何將多個(gè)文件打成zip,需要的朋友可以參考下2023-09-09spring boot實(shí)現(xiàn)上傳圖片并在頁面上顯示及遇到的問題小結(jié)
最近在使用spring boot搭建網(wǎng)站的過程之中遇到了有點(diǎn)小問題,最終解決方案是在main目錄下新建了一個(gè)webapp文件夾,并且對(duì)其路徑進(jìn)行了配置,本文重點(diǎn)給大家介紹spring boot實(shí)現(xiàn)上傳圖片并在頁面上顯示功能,需要的朋友參考下吧2017-12-12Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決
這篇文章主要介紹了Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09