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

springboot如何讀取自定義屬性

 更新時(shí)間:2022年02月16日 11:08:00   作者:堯、木子  
大家好,本篇文章主要講的是springboot如何讀取自定義屬性,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

很多時(shí)候,我們開(kāi)發(fā)當(dāng)中,需要通過(guò)配置自己的屬性信息來(lái)滿足不同環(huán)境下的應(yīng)用部署,因此需要springboot能夠讀取我們自定義的屬性,常用的讀取自定義屬性有@Value和@ConfigurationProperties,下面分別做簡(jiǎn)單的介紹
1、@Value

在這里插入圖片描述

可以看到點(diǎn)擊進(jìn)去源碼,表明當(dāng)前注解,可以使用在屬性、方法或者構(gòu)造方法上,支持SPEL表達(dá)式和占位符注解方式,此標(biāo)簽通常是單個(gè)配置加載的數(shù)據(jù)
例如在配置文件中,配置了name和age兩個(gè)屬性

lixl:
  person:
    name: lixl
    age: 20
我們?cè)诖a中的屬性上,直接注解
/**
 * @author lixl
 * @description
 * @date 2022/2/15
 */
@Component
public class Person {

    @Value("${lixl.person.name}")
    private String name;

    @Value("${lixl.person.age}")
    private String age;

    @Override
    public String toString() {
        return "name:"+this.name+";age:"+this.age;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

可以看到,正常打印

在這里插入圖片描述

修改代碼,將其注解在方法上,運(yùn)行main方法,依然可以使用

	@Value("${lixl.person.name}")
    public void setName(String name) {
        this.name = name;
    }

再次修改代碼,將其注解在構(gòu)造方法的參數(shù)上,依然能夠進(jìn)行注入

    public Person(@Value("${lixl.person.name}")String name, @Value("${lixl.person.age}")String age) {
        this.name = name;
        this.age = age;
    }

另外,如果我們需要給定@Value默認(rèn)值,也是可以的,例如我們刪除了name字段,同時(shí)在@Value中增加默認(rèn)值

// 默認(rèn)是通過(guò) : + 默認(rèn)值 給定
 public Person(@Value("${lixl.person.name:張三}")String name, @Value("${lixl.person.age}")String age) {
        this.name = name;
        this.age = age;
 }

在這里插入圖片描述

運(yùn)行結(jié)果,也是正常的

我們?cè)賮?lái)看看Spel表達(dá)式

   @Value("#{'男'}") // 增加性別字段
   private String gender;
	
	// 修改toString方法打印性別
	public String toString() {
        return "name:"+this.name+";age:"+this.age+";gender:"+this.gender;
    }

在這里插入圖片描述

運(yùn)行結(jié)果正常通過(guò),還有其他很多Spel表達(dá),此處就不完全列舉了
比如我們?cè)谂渲梦募兄付藢傩詎ame=‘java’ 在需要使用的組件中,設(shè)定@Value("${name}") 注解在相應(yīng)的字段上,springboot就會(huì)自動(dòng)加載。當(dāng)然,@Value還可以使用Spel表達(dá)是,注入值使用@Value("#{Spel}").

2、@ConfigurationProperties 可以對(duì)配置文件中,某一類(lèi)前綴開(kāi)頭的屬性整體進(jìn)行注入,例如:
配置文件中,有如下配置

test.name='lixl'
test.age='age'

配置類(lèi)需要按照一下方式編寫(xiě)

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component // 首先本身要是springboot容器中的組件
@ConfigurationProperties(prefix = "test") // 指定前綴
public class ConfigTest {

    private String name;

    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

目前都是用到的springboot默認(rèn)的配置文件,我們也可以自己指定配置文件
使用@PropertySource(“classpath:xxx.properties”),進(jìn)行加載配置文件

以上就是springboot如何讀取自定義屬性的詳細(xì)內(nèi)容,更多關(guān)于springboot讀取自定義屬性的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springMVC使用ajaxFailUpload上傳圖片的方法

    springMVC使用ajaxFailUpload上傳圖片的方法

    這篇文章主要介紹了springMVC使用ajaxFailUpload上傳圖片的相關(guān)知識(shí),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • springboot登錄攔截器+ThreadLocal實(shí)現(xiàn)用戶信息存儲(chǔ)的實(shí)例代碼

    springboot登錄攔截器+ThreadLocal實(shí)現(xiàn)用戶信息存儲(chǔ)的實(shí)例代碼

    ThreadLocal 為變量在每個(gè)線程中創(chuàng)建了一個(gè)副本,這樣每個(gè)線程都可以訪問(wèn)自己內(nèi)部的副本變量,這篇文章主要介紹了springboot登錄攔截器+ThreadLocal實(shí)現(xiàn)用戶信息存儲(chǔ)的實(shí)例代碼,需要的朋友可以參考下
    2024-03-03
  • 詳解mybatis @SelectProvider 注解

    詳解mybatis @SelectProvider 注解

    這篇文章主要介紹了mybatis @SelectProvider 注解的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-12-12
  • Java本地緩存實(shí)現(xiàn)代碼示例

    Java本地緩存實(shí)現(xiàn)代碼示例

    這篇文章主要給大家介紹了關(guān)于Java本地緩存實(shí)現(xiàn)的相關(guān)資料,對(duì)于緩存的作用不言而喻,可以提高查詢效率,比去DB查詢的速度要快,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-08-08
  • Springboot2.6.x高版本與Swagger2版本沖突問(wèn)題解決方法

    Springboot2.6.x高版本與Swagger2版本沖突問(wèn)題解決方法

    Spring Boot 2.6.x版本引入依賴?springfox-boot-starter?(Swagger?3.0) 后,啟動(dòng)容器會(huì)報(bào)錯(cuò),本文就介紹一下Springboot2.6.x高版本與Swagger2版本沖突問(wèn)題解決方法,感興趣的可以了解一下
    2022-04-04
  • Springboot獲取前端反饋信息并存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼

    Springboot獲取前端反饋信息并存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Springboot獲取前端反饋信息并存入數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)詳解

    如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot+docker環(huán)境變量配置詳解

    SpringBoot+docker環(huán)境變量配置詳解

    這篇文章主要介紹了SpringBoot+docker環(huán)境變量配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringBoot 項(xiàng)目添加 MDC 日志鏈路追蹤的執(zhí)行流程

    SpringBoot 項(xiàng)目添加 MDC 日志鏈路追蹤的執(zhí)行流程

    日志鏈路追蹤就是將一個(gè)標(biāo)志跨線程進(jìn)行傳遞,在一般的小項(xiàng)目中也就是在你新起一個(gè)線程的時(shí)候,或者使用線程池執(zhí)行任務(wù)的時(shí)候會(huì)用到,比如追蹤一個(gè)用戶請(qǐng)求的完整執(zhí)行流程,本文給大家介紹SpringBoot MDC 日志鏈路追蹤的代碼,感興趣的朋友一起看看吧
    2021-06-06
  • java實(shí)現(xiàn)英文翻譯程序

    java實(shí)現(xiàn)英文翻譯程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)英文翻譯程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論