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

Springboot如何通過(guò)yml配置文件為靜態(tài)成員變量賦值

 更新時(shí)間:2022年10月27日 17:18:31   作者:嗯mua.  
這篇文章主要介紹了Springboot如何通過(guò)yml配置文件為靜態(tài)成員變量賦值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

通過(guò)yml配置文件為靜態(tài)成員變量賦值

我們對(duì)springboot為普通成員變量的方式很熟悉,所以經(jīng)常定式思維的認(rèn)為靜態(tài)屬性的賦值和普通屬性一樣,結(jié)果調(diào)試的時(shí)候調(diào)試半天發(fā)現(xiàn)靜態(tài)屬性還是Null。

仔細(xì)一想才發(fā)現(xiàn)靜態(tài)屬性和普通屬性的賦值方式不太一樣。

到底是哪里不一樣呢?問(wèn)題出在set方法。我們通過(guò)idea快捷鍵或注解 @Data 得到的set方法是靜態(tài)方法。

這里我強(qiáng)調(diào)一句

  • 用idea快捷鍵或注解 @Data 得到的set方法是靜態(tài)方法
  • 用idea快捷鍵或注解 @Data 得到的set方法是靜態(tài)方法
  • 用idea快捷鍵或注解 @Data 得到的set方法是靜態(tài)方法

而springboot為屬性賦值時(shí)采用的是動(dòng)態(tài)的setter注入,所以我們按照為普通屬性賦值的方法給靜態(tài)變量賦值必然是行不通的。

所以我們只需要將圖里面的 static 給刪掉就大功告成了??!

順便再提一句,在這個(gè)類上面需要加上 @ConfigurationProperties(prefix = "reggie.qiniu") 注解,并且在調(diào)用的地方加上 @EnableConfigurationProperties(QiniuUtils.class) 注解,括號(hào)里面的參數(shù)不可以跟我一樣哦,如果多處都需要調(diào)用的話,你嫌麻煩可以直接在springboot啟動(dòng)類上加上這個(gè)注解。

怕有的同學(xué)還是看不懂,我再貼一下我yml配置文件里面配置的寫法。

Springboot靜態(tài)變量讀取yml配置信息

因?yàn)閟pring加載靜態(tài)方法比IOC早,所以不能直接使用@Value注解讀取yml配置,讀取結(jié)果往往是null。

解決方式1

我們可以通過(guò)@PostConstruct在服務(wù)加載Servlet的時(shí)候運(yùn)行

@Configuration
public class DemoConfig {

    //給靜態(tài)變量賦值
    @Value("${mvc.test}")
    public  int test;
    public void setTest(int test) {
        this.test = test;
    }
    
    

    public static   int TEST;
    @PostConstruct
    public  void init(){
        DemoConfig.TEST = test;
    }

}

然后在我們需要的地方調(diào)用就行了

@Component
public class MyConfig {
    public  void show(){
        System.out.println(DemoConfig.TEST);
    }
}

解決方式2

我們可以通過(guò)@AutoConfigureAfter 來(lái)在當(dāng)前類注入到容器之前去加載相關(guān)配置類

@Configuration
public class DemoConfig {
    public static int test;
    //給靜態(tài)變量賦值
    @Value("${mvc.test}")
    public void setTest(int test) {
        DemoConfig.test = test;
    }
}
@AutoConfigureAfter({DemoConfig.class})  //加載當(dāng)前文件之前先去加載DemoConfig文件
@Component
public class MyConfig {
    public  void show(){
        //然后在我們需要的地方調(diào)用就行了
        System.out.println(DemoConfig.test);
    }

}

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

相關(guān)文章

  • SpringMVC注解@CrossOrigin跨域問(wèn)題詳解

    SpringMVC注解@CrossOrigin跨域問(wèn)題詳解

    這篇文章主要介紹了SpringMVC注解@CrossOrigin跨域問(wèn)題詳解,跨域是瀏覽同源策略的造成,是瀏覽器對(duì)JavaScript施加的安全限制CORS是一種可以解決跨域問(wèn)題的技術(shù),需要的朋友可以參考下
    2023-11-11
  • SpringBoot整合RabbitMQ消息隊(duì)列的完整步驟

    SpringBoot整合RabbitMQ消息隊(duì)列的完整步驟

    這篇文章主要給大家介紹了關(guān)于SpringBoot整合RabbitMQ消息隊(duì)列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 深入探究Java線程的創(chuàng)建與構(gòu)造方法

    深入探究Java線程的創(chuàng)建與構(gòu)造方法

    這篇文章主要給大家分享的是java線程的創(chuàng)建以及構(gòu)造方法,想了解具體方式的小伙伴可以參考下面文章內(nèi)容,希望對(duì)你有所幫助
    2022-04-04
  • Mybatis防止sql注入原理分析

    Mybatis防止sql注入原理分析

    這篇文章主要介紹了Mybatis防止sql注入原理分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring條件注解@ConditionnalOnClass的原理分析

    Spring條件注解@ConditionnalOnClass的原理分析

    這篇文章主要介紹了Spring條件注解@ConditionnalOnClass的原理分析,所謂@ConditionalOnClass注解,翻譯過(guò)來(lái)就是基于class的條件,它為所標(biāo)注的類或方法添加限制條件,當(dāng)該條件的值為true時(shí),其所標(biāo)注的類或方法才能生效,需要的朋友可以參考下
    2023-12-12
  • Servlet生命周期與工作原理詳解

    Servlet生命周期與工作原理詳解

    這篇文章主要為大家詳細(xì)介紹了Servlet生命周期與工作原理的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Java多線程之Park和Unpark原理

    Java多線程之Park和Unpark原理

    這篇文章主要介紹了Java多線程之Park和Unpark原理,需文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,要的朋友可以參考下
    2021-04-04
  • Idea?編譯并運(yùn)行?Spark?3.1.1?源碼的方法

    Idea?編譯并運(yùn)行?Spark?3.1.1?源碼的方法

    這篇文章主要介紹了Idea?編譯并運(yùn)行?Spark?3.1.1源碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能示例【二分搜索】

    這篇文章主要介紹了Java使用分治算法實(shí)現(xiàn)排序數(shù)索引功能,結(jié)合具體實(shí)例形式分析了java分治算法進(jìn)行排序索引的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • 簡(jiǎn)單理解Java的垃圾回收機(jī)制與finalize方法的作用

    簡(jiǎn)單理解Java的垃圾回收機(jī)制與finalize方法的作用

    這篇文章主要介紹了簡(jiǎn)單理解Java的垃圾回收機(jī)制與finalize方法的作用,著重講解了Java的GC銷毀對(duì)象的過(guò)程,需要的朋友可以參考下
    2015-11-11

最新評(píng)論