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

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

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

一、回顧@value注解

SpringBoot中我們?cè)撊绾螌pplicaton.properties中的數(shù)據(jù)綁定到bean中呢?在之間我們是可以通過@value注解,在SpringBoot自動(dòng)啟動(dòng)后,會(huì)自動(dòng)的去相應(yīng)的路徑中去尋找applicaton.properties配置文件,然后將相應(yīng)的值賦值上?;仡櫲缦拢?/p>

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對(duì)象中,但是一但配置文件中的要注入bean對(duì)象的信息過多的話,那我們就需要寫非常多個(gè)@value的注解,這樣就會(huì)非常的麻煩。

二、將配置綁定到簡單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這個(gè)bean對(duì)象中。通過@ConfigurationProperties(prefix="myapp")來實(shí)現(xiàn),且需要注意的是,要寫上每個(gè)要被賦值屬性的setter方法,因?yàn)槠湓诒毁x值的時(shí)候是通過setter方法進(jìn)行賦值的。同時(shí)需要注意屬性名要和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 + '\'' +
                '}';
    }
}

測(cè)試結(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

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

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

例如在其中有些bean對(duì)象中,其屬性可能就不是單一的屬性,也可能如private ConfigLocation configLocation;一樣,本身也是一個(gè)對(duì)象,那么像這種嵌套的bean對(duì)象又如何注入呢?其實(shí)方式是一樣的, 也是通過注解@ConfigurationProperties來實(shí)現(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的格式改一下就可以實(shí)現(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

測(cè)試結(jié)果如下:

也是綁定成功了。

四、@EnableConfigurationProperties

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

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);
    }
}

 同時(shí)Config這個(gè)bean對(duì)象上不用在使用@Component注解了。

測(cè)試:

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

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

相關(guān)文章

  • JDK8的lambda方式List轉(zhuǎn)Map的操作方法

    JDK8的lambda方式List轉(zhuǎn)Map的操作方法

    account是一個(gè)返回本身的lambda表達(dá)式,其實(shí)還可以使用Function接口中的一個(gè)默認(rèn)方法代替,使整個(gè)方法更簡潔優(yōu)雅,這篇文章主要介紹了JDK8的lambda方式List轉(zhuǎn)Map,需要的朋友可以參考下
    2022-07-07
  • Java多線程案例實(shí)戰(zhàn)之定時(shí)器的實(shí)現(xiàn)

    Java多線程案例實(shí)戰(zhàn)之定時(shí)器的實(shí)現(xiàn)

    在Java中可以使用多線程和定時(shí)器來實(shí)現(xiàn)定時(shí)任務(wù),下面這篇文章主要給大家介紹了關(guān)于Java多線程案例之定時(shí)器實(shí)現(xiàn)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 利用Java Set 去除重復(fù)object的方法

    利用Java Set 去除重復(fù)object的方法

    下面小編就為大家?guī)硪黄肑ava Set 去除重復(fù)object的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java學(xué)習(xí)之Lambda表達(dá)式的使用詳解

    Java學(xué)習(xí)之Lambda表達(dá)式的使用詳解

    Lambda表達(dá)式是Java SE 8中一個(gè)重要的新特性,允許通過表達(dá)式來代替功能接口。本文將通過一些簡單的示例和大家講講Lamda表達(dá)式的使用,感興趣的可以了解一下
    2022-12-12
  • Springboot使用Security實(shí)現(xiàn)OAuth2授權(quán)驗(yàn)證完整過程

    Springboot使用Security實(shí)現(xiàn)OAuth2授權(quán)驗(yàn)證完整過程

    安全管理是軟件系統(tǒng)必不可少的的功能。根據(jù)經(jīng)典的“墨菲定律”——凡是可能,總會(huì)發(fā)生。如果系統(tǒng)存在安全隱患,最終必然會(huì)出現(xiàn)問題,這篇文章主要介紹了SpringBoot使用Security實(shí)現(xiàn)OAuth2授權(quán)驗(yàn)證完整過程
    2022-12-12
  • Spring boot多線程配置方法

    Spring boot多線程配置方法

    這篇文章主要為大家詳細(xì)介紹了Spring boot多線程配置方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java打包成jar并執(zhí)行jar包中指定的main方法

    java打包成jar并執(zhí)行jar包中指定的main方法

    這篇文章主要介紹了如何將java打包成可執(zhí)行的jar,并執(zhí)行jar包中指定的main方法的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • SpringBoot實(shí)現(xiàn)多文件上傳的詳細(xì)示例代碼

    SpringBoot實(shí)現(xiàn)多文件上傳的詳細(xì)示例代碼

    文件上傳中并沒有什么太多的知識(shí)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)多文件上傳的詳細(xì)示例,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Eclipse代碼格式化設(shè)置簡單介紹

    Eclipse代碼格式化設(shè)置簡單介紹

    這篇文章主要介紹了Eclipse代碼格式化設(shè)置簡單介紹,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • idea?與?maven?使用過程中遇到的問題及解決方案

    idea?與?maven?使用過程中遇到的問題及解決方案

    最近將IDEA 升級(jí)到 IntelliJ IDEA 2021.3.2,在將maven項(xiàng)目導(dǎo)入IDEA后,maven build時(shí)報(bào)異常,這個(gè)問題是IntelliJ IDEA 2021.3.2 不兼容導(dǎo)致的,下面小編給大家?guī)砹薸dea?與?maven?使用過程中遇到的問題及解決方案,感興趣的朋友一起看看吧
    2022-05-05

最新評(píng)論