欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot通過@Value實(shí)現(xiàn)給靜態(tài)變量注入值詳解

 更新時(shí)間:2022年07月18日 10:55:14   作者:蹲街式等待  
這篇文章主要介紹了springboot如何通過@Value給靜態(tài)變量注入值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、簡介

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)文章

  • 實(shí)例分析Java泛型

    實(shí)例分析Java泛型

    本篇文章通過代碼實(shí)例給大家講述了Java泛型的相關(guān)知識(shí)點(diǎn)以及相關(guān)的代碼分析,對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • Guava Cache的使用簡介

    Guava Cache的使用簡介

    這篇文章主要介紹了Guava Cache的使用簡介,幫助大家更好的理解和學(xué)習(xí)使用Guava Cache,感興趣的朋友可以了解下
    2021-03-03
  • Java中使用qsort對(duì)類進(jìn)行排序的操作代碼

    Java中使用qsort對(duì)類進(jìn)行排序的操作代碼

    這篇文章主要介紹了JAVA中如何使用qsort對(duì)類進(jìn)行排序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java中通過ZipOutputStream類如何將多個(gè)文件打成zip

    Java中通過ZipOutputStream類如何將多個(gè)文件打成zip

    ZipOutputStream?是Java中用于創(chuàng)建ZIP文件的類,它是?java.util.zip?包中的一部分,通過使用?ZipOutputStream?,可以將多個(gè)文件壓縮到一個(gè)ZIP文件中,這篇文章主要介紹了Java中(ZipOutputStream)如何將多個(gè)文件打成zip,需要的朋友可以參考下
    2023-09-09
  • spring boot實(shí)現(xiàn)上傳圖片并在頁面上顯示及遇到的問題小結(jié)

    spring 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-12
  • Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決

    Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決

    這篇文章主要介紹了Spring數(shù)據(jù)庫連接池url參數(shù)踩坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java?BitMap源碼仿寫實(shí)現(xiàn)

    Java?BitMap源碼仿寫實(shí)現(xiàn)

    這篇文章主要介紹了Java?BitMap源碼仿寫實(shí)現(xiàn),所謂bitmap,就是用每一位來存放某種狀態(tài),適用于大規(guī)模數(shù)據(jù),但數(shù)據(jù)狀態(tài)又不是很多的情況。通常是用來判斷某個(gè)數(shù)據(jù)存不存在的
    2022-12-12
  • IDEA類和方法注釋模板設(shè)置(非常詳細(xì))

    IDEA類和方法注釋模板設(shè)置(非常詳細(xì))

    這篇文章主要介紹了IDEA類和方法注釋模板設(shè)置(非常詳細(xì)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Spring存儲(chǔ)與讀取Bean對(duì)象方法

    Spring存儲(chǔ)與讀取Bean對(duì)象方法

    在Spring中,要想更簡單的存儲(chǔ)和讀取對(duì)象的核心是使用注解,這篇文章主要給大家介紹了關(guān)于Spring如何通過注解存儲(chǔ)和讀取對(duì)象的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Kotlin修飾符lateinit(延遲初始化)案例詳解

    Kotlin修飾符lateinit(延遲初始化)案例詳解

    這篇文章主要介紹了Kotlin修飾符lateinit(延遲初始化)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評(píng)論