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

SpringBoot讀取application.yml作為配置的處理

 更新時(shí)間:2026年04月17日 16:16:04   作者:han_hanker  
SpringBoot支持將配置放在application.yml或application.properties中,自動(dòng)加載并注入到應(yīng)用中,使用@Value或@ConfigurationProperties讀取配置,推薦使用后者處理結(jié)構(gòu)化配置

Spring Boot 的一大優(yōu)勢(shì)是 “約定優(yōu)于配置” + “配置外部化”。

你不需要寫(xiě) XML 或硬編碼參數(shù),而是把配置放在 application.yml(或 application.properties) 中,Spring Boot 自動(dòng)加載并注入到你的應(yīng)用中。

支持格式:.properties(鍵值對(duì)) 和 .yml(YAML,層次清晰,推薦)

Spring Boot 會(huì)按以下順序查找 application.yml(后出現(xiàn)的會(huì)覆蓋前面的):

  • 當(dāng)前項(xiàng)目根目錄下的 /config 子目錄
  • 當(dāng)前項(xiàng)目根目錄下
  • classpath 下的 /config 包
  • classpath 根路徑(即 src/main/resources/)

最常用:src/main/resources/application.yml

基本用法:在代碼中讀取配置

1.使用 @Value(適合少量配置)

# application.yml
app:
  name: MySpringBootApp
  version: 1.0.0
@Component
public class AppConfig {
    @Value("${app.name}")
    private String appName;
    @Value("${app.version}")
    private String version;
}

2.使用 @ConfigurationProperties(推薦!適合結(jié)構(gòu)化配置)

步驟 1:在 application.yml 中配置

# application.yml
database:
  host: 192.168.1.100
  port: 3307
  username: admin
  password: secret123

步驟 2:定義配置類(lèi)

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

@Component
@ConfigurationProperties(prefix = "database") // 對(duì)應(yīng) yml 中 database 開(kāi)頭的配置
public class DatabaseConfig {
    private String host = "localhost";
    private int port = 3306;
    private String username;
    private String password;

    // 必須有 getter/setter(或用 Lombok @Data)
    public String getHost() { return host; }
    public void setHost(String host) { this.host = host; }
    public int getPort() { return port; }
    public void setPort(int port) { this.port = port; }
    // ... 其他 setter/getter
}

步驟 3:在其他 Bean 中注入使用

@Service
public class UserService {
    private final DatabaseConfig dbConfig;

    public UserService(DatabaseConfig dbConfig) {
        this.dbConfig = dbConfig;
    }

    public void connect() {
        System.out.println("連接數(shù)據(jù)庫(kù): " + dbConfig.getHost() + ":" + dbConfig.getPort());
    }
}

支持復(fù)雜結(jié)構(gòu):嵌套對(duì)象、List、Map

# application.yml
app:
  security:
    jwt:
      secret: mySecretKey
      expire-hours: 24
    cors:
      allowed-origins:
        - http://localhost:3000
        - https://myapp.com
@Component
@ConfigurationProperties(prefix = "app")
public class AppProperties {
    private Security security = new Security();

    public static class Security {
        private Jwt jwt = new Jwt();
        private Cors cors = new Cors();

        public static class Jwt {
            private String secret;
            private int expireHours;
            // getters/setters
        }

        public static class Cors {
            private List<String> allowedOrigins = new ArrayList<>();
            // getter/setter
        }
        // getters/setters
    }
    // getter for security
}

啟用 @ConfigurationProperties 的兩種方式

1. 在配置類(lèi)上加 @Component

@Component
@ConfigurationProperties(prefix = "xxx")
public class XxxProperties { ... }

2. 在 @Configuration 類(lèi)上使用 @EnableConfigurationProperties

@Configuration
@EnableConfigurationProperties({DatabaseConfig.class, AppProperties.class})
public class AppConfig { }

不要同時(shí)用兩種方式,否則可能創(chuàng)建多個(gè)實(shí)例

總結(jié)

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

相關(guān)文章

  • Java實(shí)現(xiàn)創(chuàng)建運(yùn)行時(shí)類(lèi)的對(duì)象操作示例

    Java實(shí)現(xiàn)創(chuàng)建運(yùn)行時(shí)類(lèi)的對(duì)象操作示例

    這篇文章主要介紹了Java實(shí)現(xiàn)創(chuàng)建運(yùn)行時(shí)類(lèi)的對(duì)象操作,結(jié)合實(shí)例形式分析了Java動(dòng)態(tài)創(chuàng)建對(duì)象的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • JavaWeb Session失效時(shí)間設(shè)置方法

    JavaWeb Session失效時(shí)間設(shè)置方法

    這篇文章主要介紹了JavaWeb Session失效時(shí)間設(shè)置方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • Java ES(Elasticsearch) 中的and 和 or 查詢(xún)

    Java ES(Elasticsearch) 中的and 和 or 查

    Elasticsearch 是一個(gè)分布式、高擴(kuò)展、高實(shí)時(shí)的搜索與數(shù)據(jù)分析引擎,es中match查詢(xún)中,查詢(xún)字符串分詞后,默認(rèn)是or或者的關(guān)系,這篇文章主要介紹了ES 中的and 和 or 查詢(xún),需要的朋友可以參考下
    2022-11-11
  • mybatis?foreach傳兩個(gè)參數(shù)批量刪除

    mybatis?foreach傳兩個(gè)參數(shù)批量刪除

    這篇文章主要介紹了mybatis?foreach?批量刪除傳兩個(gè)參數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源

    Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源

    這篇文章主要介紹了Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java中replace與replaceAll的區(qū)別與測(cè)試

    Java中replace與replaceAll的區(qū)別與測(cè)試

    replace和replaceAll是JAVA中常用的替換字符的方法,下面這篇文章主要給大家介紹了關(guān)于Java中replace與replaceAll的區(qū)別與測(cè)試,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問(wèn)題及解決

    druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問(wèn)題及解決

    這篇文章主要介紹了druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • ActiveMQ安裝及部署教程圖解

    ActiveMQ安裝及部署教程圖解

    這篇文章主要介紹了ActiveMQ安裝及部署教程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • idea中項(xiàng)目前端網(wǎng)頁(yè)圖標(biāo)不顯示的原因及解決

    idea中項(xiàng)目前端網(wǎng)頁(yè)圖標(biāo)不顯示的原因及解決

    這篇文章主要介紹了idea中項(xiàng)目前端網(wǎng)頁(yè)圖標(biāo)不顯示的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring?Cloud?OpenFeign實(shí)例介紹使用方法

    Spring?Cloud?OpenFeign實(shí)例介紹使用方法

    Spring?Cloud?OpenFeign?對(duì)?Feign?進(jìn)行了二次封裝,使得在?Spring?Cloud?中使用?Feign?的時(shí)候,可以做到使用?HTTP?請(qǐng)求訪問(wèn)遠(yuǎn)程服務(wù),就像調(diào)用本地方法一樣的,開(kāi)發(fā)者完全感知不到這是在調(diào)用遠(yuǎn)程訪問(wèn),更感知不到在訪問(wèn)?HTTP?請(qǐng)求
    2022-09-09

最新評(píng)論

泽库县| 霍州市| 金阳县| 汉川市| 静海县| 孝感市| 辉南县| 沁阳市| 屏边| 九江市| 黑水县| 宜兰市| 丰镇市| 闵行区| 沁阳市| 方正县| 崇明县| 南郑县| 临洮县| 阿勒泰市| 丹东市| 涞水县| 安平县| 曲沃县| 琼海市| 龙门县| 镇雄县| 沙洋县| 石河子市| 澜沧| 宜昌市| 芦溪县| 盐津县| 建宁县| 鹤岗市| 阿图什市| 禹州市| 睢宁县| 江陵县| 云南省| 湖口县|