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多線程累加計(jì)數(shù)的實(shí)現(xiàn)方法
在多線程協(xié)作任務(wù)中,如何計(jì)算也是很重的,這篇文章主要介紹了java多線程累加計(jì)數(shù)的實(shí)現(xiàn)方法,感興趣的朋友可以了解一下2021-05-05
mall整合SpringSecurity及JWT認(rèn)證授權(quán)實(shí)戰(zhàn)下
這篇文章主要為大家介紹了mall整合SpringSecurity及JWT認(rèn)證授權(quán)實(shí)戰(zhàn)第二篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Java中List與數(shù)組相互轉(zhuǎn)換實(shí)例分析
這篇文章主要介紹了Java中List與數(shù)組相互轉(zhuǎn)換的方法,實(shí)例分析了Java中List與數(shù)組相互轉(zhuǎn)換中容易出現(xiàn)的問題與相關(guān)的解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
Java如何獲取數(shù)組和字符串的長度(length還是length())
這篇文章主要介紹了Java如何獲取數(shù)組和字符串的長度(length還是length()),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

