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

SpringBoot如何將applicaton.properties中的數(shù)據(jù)綁定到bean中

 更新時間:2025年05月16日 11:17:05   作者:cg5017  
SpringBoot中我們該如何將applicaton.properties中的數(shù)據(jù)綁定到bean中呢?在之間我們是可以通過@value注解,在SpringBoot自動啟動后,會自動的去相應(yīng)的路徑中去尋找applicaton.properties配置文件,然后將相應(yīng)的值賦值上,感興趣的朋友一起看看吧

一、回顧@value注解

SpringBoot中我們該如何將applicaton.properties中的數(shù)據(jù)綁定到bean中呢?在之間我們是可以通過@value注解,在SpringBoot自動啟動后,會自動的去相應(yīng)的路徑中去尋找applicaton.properties配置文件,然后將相應(yīng)的值賦值上。回顧如下:

spring.application.name=properties-location
myapp.name=classpath:/config
//納入IoC容器管理
@Component
public class appConfig {
    @Value("${myapp.name}")
    private String appPath;
    public void printInfo(){
        System.out.println("App Path: " + appPath);
    }
}

如上的方式就可以很好的將配置文件中的信息注入到bean對象中,但是一但配置文件中的要注入bean對象的信息過多的話,那我們就需要寫非常多個@value的注解,這樣就會非常的麻煩。

二、將配置綁定到簡單bean

使用注解@ConfigurationProperties(prefix="myapp")就可以把后面都依次注入,示例如下。

applicaton.properties中的配置內(nèi)容如下:

spring.application.name=demo4
myapp.configName=test
myapp.configId=1234
myapp.configValue=value
myapp.configKey=1234

想將applicaton.properties中的配置內(nèi)容賦值到Cogfig這個bean對象中。通過@ConfigurationProperties(prefix="myapp")來實現(xiàn),且需要注意的是,要寫上每個要被賦值屬性的setter方法,因為其在被賦值的時候是通過setter方法進行賦值的。同時需要注意屬性名要和applicaton.properties中的配置一致。

package com.example.demo4;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "myapp")
public class Config {
    private String configName;
    private String configId;
    private String configValue;
    private String configKey;
    public void setConfigName(String configName) {
        this.configName = configName;
    }
    public void setConfigId(String configId) {
        this.configId = configId;
    }
    public void setConfigValue(String configValue) {
        this.configValue = configValue;
    }
    public void setConfigKey(String configKey) {
        this.configKey = configKey;
    }
    @Override
    public String toString() {
        return "Config{" +
                "configName='" + configName + '\'' +
                ", configId='" + configId + '\'' +
                ", configValue='" + configValue + '\'' +
                ", configKey='" + configKey + '\'' +
                '}';
    }
}

測試結(jié)果如下:

package com.example.demo4;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Demo4ApplicationTests {
    @Autowired
    Config config;
    @Test
    void test0() {
        System.out.println(config.toString());
    }
}
輸出:Config{configName='test', configId='1234', configValue='value', configKey='1234'}

 三、將配置綁定到嵌套bean

就是其實有時候綁定的bean并不是單一的,是復(fù)雜的。

private String configName;
private String configId;
private String configValue;
private String configKey;
private ConfigLocation configLocation;

例如在其中有些bean對象中,其屬性可能就不是單一的屬性,也可能如private ConfigLocation configLocation;一樣,本身也是一個對象,那么像這種嵌套的bean對象又如何注入呢?其實方式是一樣的, 也是通過注解@ConfigurationProperties來實現(xiàn)配置到bean的注入。

其ConfigLocation如下。

package com.example.demo4;
public class ConfigLocation {
    private String configCountry;
    private String configState;
    public void setConfigCountry(String configCountry) {
        this.configCountry = configCountry;
    }
    public void setConfigState(String configState) {
        this.configState = configState;
    }
    @Override
    public String toString() {
        return "ConfigLocation{" +
                "configCountry='" + configCountry + '\'' +
                ", configState='" + configState + '\'' +
                '}';
    }
}

 只需要其applicaton.properties的格式改一下就可以實現(xiàn)。

spring.application.name=demo4
myapp.configName=test
myapp.configId=1234
myapp.configValue=value
myapp.configKey=1234
myapp.configLocation.configCountry=china
myapp.configLocation.configState=LiaoNing

測試結(jié)果如下:

也是綁定成功了。

四、@EnableConfigurationProperties

@EnableConfigurationProperties的使用方法是在其主入口類上添加該注解,并將啟動的配置信息綁定到Config的bean對象上去。

package com.example.demo4;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@SpringBootApplication
@EnableConfigurationProperties(Config.class)
public class Demo4Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo4Application.class, args);
    }
}

 同時Config這個bean對象上不用在使用@Component注解了。

測試:

通過測試,并輸出結(jié)果正確。 

到此這篇關(guān)于SpringBoot中配置綁定到bean中的文章就介紹到這了,更多相關(guān)SpringBoot配置綁定bean內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java自動釋放鎖的三種實現(xiàn)方案

    Java自動釋放鎖的三種實現(xiàn)方案

    在筆者面試過程時,經(jīng)常會被問到各種各樣的鎖,如樂觀鎖、讀寫鎖等等,非常繁多,下面這篇文章主要給大家介紹了關(guān)于Java自動釋放鎖的三種實現(xiàn)方案,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 解決jackson反序列化失敗InvalidFormatException:Can not deserialize value of type java.util.Date

    解決jackson反序列化失敗InvalidFormatException:Can not dese

    這篇文章主要介紹了解決jackson反序列化失敗InvalidFormatException:Can not deserialize value of type java.util.Date問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 深入了解Java線程池:從設(shè)計思想到源碼解讀

    深入了解Java線程池:從設(shè)計思想到源碼解讀

    這篇文章將從設(shè)計思想到源碼解讀,帶大家深入了解Java的線程池,文中的示例代碼講解詳細,對我們的學(xué)習(xí)或工作有一定的幫助,需要的可以參考一下
    2021-12-12
  • 詳解SpringBoot中時間類型的序列化與反序列化

    詳解SpringBoot中時間類型的序列化與反序列化

    這篇文章主要為大家詳細介紹了SpringBoot中時間類型的序列化與反序列化的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02
  • 解決Java中new?BigDecimal()的坑

    解決Java中new?BigDecimal()的坑

    這篇文章主要介紹了解決Java中new?BigDecimal()的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • idea gradle項目復(fù)制依賴小技巧(推薦)

    idea gradle項目復(fù)制依賴小技巧(推薦)

    這篇文章主要介紹了idea gradle項目復(fù)制依賴小技巧,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Java基礎(chǔ)之方法重寫詳解

    Java基礎(chǔ)之方法重寫詳解

    這篇文章主要介紹了Java基礎(chǔ)之方法重寫詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • 詳解SpringBoot如何統(tǒng)一后端返回格式

    詳解SpringBoot如何統(tǒng)一后端返回格式

    今天我們來聊一聊在基于SpringBoot前后端分離開發(fā)模式下,如何友好的返回統(tǒng)一的標準格式以及如何優(yōu)雅的處理全局異常,感興趣的可以了解一下
    2021-07-07
  • Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法

    Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法

    這篇文章主要介紹了Springboot 使用內(nèi)置tomcat禁止不安全HTTP的方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • kill命令在Java應(yīng)用中使用的注意事項小結(jié)

    kill命令在Java應(yīng)用中使用的注意事項小結(jié)

    這篇文章主要給大家介紹了關(guān)于kill命令在Java應(yīng)用中使用的注意事項,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

攀枝花市| 太湖县| 隆安县| 龙江县| 汾阳市| 天津市| 孟州市| 通化县| 普格县| 兴安盟| 招远市| 斗六市| 绥宁县| 娱乐| 桐庐县| 高雄县| 甘泉县| 卓资县| 凤城市| 阿瓦提县| 家居| 商城县| 浦江县| 友谊县| 沂源县| 若羌县| 黄骅市| 雅安市| 镇宁| 舟山市| 绥滨县| 自治县| 乐陵市| 图木舒克市| 阳东县| 尚义县| 宜都市| 湛江市| 宜川县| 永城市| 松滋市|