最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot中@Value注入靜態(tài)變量方式

 更新時間:2025年08月16日 09:01:12   作者:濤哥是個大帥比  
SpringBoot中靜態(tài)變量無法直接用@Value注入,需通過setter方法,@Value('${}')從屬性文件獲取值,@Value('#{}')用于SpEL表達(dá)式,可注入其他bean屬性,注意bean默認(rèn)名稱為類名首字母小寫

項目場景

Spring Boot中靜態(tài)變量想使用@Value注入值:

在application.properties或application.yml中定義topic名稱:

# application.properties
test.name=測試
@Value("${test.name}")
public static String name;

這時候打印發(fā)現(xiàn)是空的, 通過上例可以看出,使用@Value注解修飾靜態(tài)屬性,啟動項目時不會報錯,但是也不會給該靜態(tài)屬性設(shè)置值。

解決方案

可以通過set方法給靜態(tài)屬性設(shè)置配置文件中的屬性值。

@Service
public class TestService {
 
    private static String name;
    
	@Value("${test.name}")
	public void setName(String param) {
		name = param;
	}
	
	public static String getName() {
		return name;
	}
}

注解說明

  1. @Value("${}"):可以獲取對應(yīng)屬性文件中定義的屬性值。
  2. @Value("#{}"):表示 SpEl 表達(dá)式通常用來獲取 bean 的屬性,或者調(diào)用 bean 的某個方法。

1、@Value("${}")使用示例

直接將字符串賦值

@Value("hello world")
private String name;

從屬性文件中獲取值

@Value("${test.name}")
private String name; // 結(jié)果:測試

設(shè)置默認(rèn)值

@Value("${test.name:defaultValue}")
private String name; // 結(jié)果:defaultValue

2、@Value("#{}")使用示例

注入操作系統(tǒng)屬性

@Value("#{systemProperties['os.name']}")
private String osName; // 結(jié)果:Windows 10

注入表達(dá)式結(jié)果

// 生成一個隨機數(shù)
@Value("#{ T(java.lang.Math).random() * 1000.0 }")
private double randomNumber;
 
// 使用 System 類獲取系統(tǒng)環(huán)境變量 PATH
@Value("#{ T(java.lang.System).getenv('path') }")
private String path;

注入其他Bean屬性

// 其他Bean
@Component
public class OtherBean {
    @Value("OtherBean的NAME屬性")
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
 
// 用法
@Component
public class MyBean {
    @Value("#{otherBean.name}")
    private String fromAnotherBean;
    // ...
}

 注意,其他 bean 使用 @Component 時,如果沒有指定名稱,則默認(rèn)為類名首字母小寫,如:otherBean 。

當(dāng)然我們也可以使用 @Component("myName") 形式,指定其他 bean 的名稱,此時,訪問則需要使用 @Value("#{myName.name}")。如下:

// 其他bean,自定義名稱為 myBeans
@Component("myBeans")
public class OtherBean2 {
    @Value("OtherBean的NAME屬性")
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
 
// 用法
@Component
public class MyBean {
    @Value("#{myBeans.name}")
    private String fromAnotherBean2;
    // ...
}

注入資源

// 注入文件資源
@Value("classpath:props/application.properties")
private Resource fileResource;
 
// 注入URL資源
@Value("https://www.hxstrive.com")
private Resource urlResource;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?新特性之Option示例詳解

    Java?新特性之Option示例詳解

    使用Optional開發(fā)時要注意正確使用Optional的“姿勢”,特別注意不要使用3.2節(jié)提到的錯誤示范,謹(jǐn)慎使用isPresent()和get()方法,盡量多使用map()、filter()、orElse()等方法來發(fā)揮Optional的作用,對Java??Option相關(guān)知識感興趣的朋友一起看看吧
    2024-02-02
  • java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼

    這篇文章主要介紹了java圖形化界面實現(xiàn)簡單混合運算計算器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • SpringCloud Nacos作為配置中心超詳細(xì)講解

    SpringCloud Nacos作為配置中心超詳細(xì)講解

    這篇文章主要介紹了Springcloud中的Nacos作為配置中心,本文以用戶微服務(wù)為例,進(jìn)行統(tǒng)一的配置,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java實現(xiàn)單例設(shè)計模式方法解析

    Java實現(xiàn)單例設(shè)計模式方法解析

    這篇文章主要介紹了Java實現(xiàn)單例設(shè)計模式方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項目實現(xiàn)動態(tài)登錄與注冊功能

    IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項目實現(xiàn)動態(tài)登錄與注冊功能

    這篇文章主要介紹了IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項目實現(xiàn)動態(tài)登錄與注冊功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • java servlet結(jié)合mysql搭建java web開發(fā)環(huán)境

    java servlet結(jié)合mysql搭建java web開發(fā)環(huán)境

    之前寫過一篇 servlet+oracle的文章,但是那是因為公司有可能接那么一個項目,然后我當(dāng)時也比較閑,所以隨便學(xué)了下,那玩意是白去研究了,因為公司后面并沒接到那項目。
    2015-12-12
  • IDEA創(chuàng)建Java項目保姆級教程(超詳細(xì)!)

    IDEA創(chuàng)建Java項目保姆級教程(超詳細(xì)!)

    這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Java項目保姆級教程的相關(guān)資料,Java是一種廣泛使用的編程語言,廣泛用于Web應(yīng)用程序和客戶端應(yīng)用程序的開發(fā),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • 如何用java給文件加密的簡單實現(xiàn)

    如何用java給文件加密的簡單實現(xiàn)

    文件加密,簡單來說就是把文件讀取出來,把讀取出來的字節(jié)碼數(shù)組進(jìn)行遍歷,把每一個碼值和一個秘鑰(隨便一個數(shù))進(jìn)行異或運算,將運算后的結(jié)果全部寫入到文件里,這篇文章主要介紹了如何用java給文件加密的簡單實現(xiàn),需要的朋友可以參考下
    2023-12-12
  • java實現(xiàn)猜字母游戲

    java實現(xiàn)猜字母游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)猜字母小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Maven?項目用Assembly打包可執(zhí)行jar包的方法

    Maven?項目用Assembly打包可執(zhí)行jar包的方法

    這篇文章主要介紹了Maven?項目用Assembly打包可執(zhí)行jar包的方法,該方法只可打包非spring項目的可執(zhí)行jar包,需要的朋友可以參考下
    2023-03-03

最新評論

盐源县| 宁乡县| 永顺县| 游戏| 杭锦旗| 南通市| 上虞市| 民县| 奇台县| 呼玛县| 进贤县| 罗江县| 浦北县| 日土县| 武隆县| 萍乡市| 长兴县| 新绛县| 三原县| 海原县| 灵台县| 朔州市| 措勤县| 东明县| 鹿泉市| 桑植县| 特克斯县| 体育| 镇平县| 会宁县| 勐海县| 启东市| 雷山县| 如皋市| 涟源市| 平凉市| 宜兴市| 辰溪县| 同仁县| 湘阴县| 多伦县|