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

SpringBoot 的參數(shù)配置示例全解析

 更新時(shí)間:2025年12月05日 10:02:14   作者:程序員小假  
Spring Boot的參數(shù)配置系統(tǒng)通過(guò)application.properties和application.yml文件實(shí)現(xiàn),支持多種外部配置方式,本文介紹SpringBoot 的參數(shù)配置示例全解析,感興趣的朋友跟隨小編一起看看吧

當(dāng)然了解,Spring Boot 的參數(shù)配置是其核心特性之一,也是它實(shí)現(xiàn)“約定大于配置”理念的關(guān)鍵。它極大地簡(jiǎn)化了傳統(tǒng) Spring 應(yīng)用中繁瑣的 XML 配置。

一、核心概念:application.properties與application.yml

Spring Boot 默認(rèn)使用這兩種文件進(jìn)行配置(二者選其一即可,.yml 更常用)。

application.properties (傳統(tǒng)鍵值對(duì)格式)

server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
logging.level.com.example.demo=debug

application.yml (YAML 格式,層次感更強(qiáng),推薦使用)

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret
logging:
  level:
    com.example.demo: debug

YAML 注意事項(xiàng):縮進(jìn)必須使用空格,不能使用 Tab 鍵,冒號(hào)后面必須有一個(gè)空格。

二、配置的加載位置與優(yōu)先級(jí)

Spring Boot 會(huì)從以下位置按從高到低的優(yōu)先級(jí)加載 application 配置文件(高優(yōu)先級(jí)的配置會(huì)覆蓋低優(yōu)先級(jí)的配置):

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

最佳實(shí)踐:在開(kāi)發(fā)時(shí),將通用配置放在 src/main/resources/application.yml 中。在打包部署時(shí),可以在 JAR 包所在目錄創(chuàng)建一個(gè) config 文件夾,里面放一個(gè) application.yml 來(lái)覆蓋開(kāi)發(fā)環(huán)境的配置(如數(shù)據(jù)庫(kù)連接),這樣就實(shí)現(xiàn)了配置與代碼分離。

三、外部化配置(非常強(qiáng)大)

除了配置文件,Spring Boot 還支持多種外部配置方式,優(yōu)先級(jí)高于 application.yml。這在容器化部署(如 Docker)時(shí)尤其有用。

  1. 命令行參數(shù)
java -jar yourapp.jar --server.port=8888 --spring.datasource.url=jdbc:mysql://prod-server:3306/proddb
  • 操作系統(tǒng)環(huán)境變量
    • Spring Boot 會(huì)自動(dòng)識(shí)別形如 SPRING_DATASOURCE_URL 的環(huán)境變量(注意大小寫(xiě)和下劃線(xiàn))。
  • Profile-specific 配置(多環(huán)境配置)
    • 這是管理不同環(huán)境(開(kāi)發(fā)、測(cè)試、生產(chǎn))配置的最佳方式。
    • 在通用的 application.yml 中,通過(guò) spring.profiles.active 屬性來(lái)激活特定環(huán)境的配置。
    • 配置文件命名規(guī)則:application-{profile}.yml
  • 例如:
    • application-dev.yml (開(kāi)發(fā)環(huán)境)
    • application-test.yml (測(cè)試環(huán)境)
    • application-prod.yml (生產(chǎn)環(huán)境)

application.yml

spring:
  profiles:
    active: dev # 默認(rèn)激活開(kāi)發(fā)環(huán)境

激活方式

  • 在配置文件中設(shè)置(如上所示)。
  • 命令行激活:java -jar yourapp.jar --spring.profiles.active=prod
  • JVM 參數(shù):-Dspring.profiles.active=test
  • 環(huán)境變量:export SPRING_PROFILES_ACTIVE=prod

四、如何在代碼中獲取配置值?

@Value 注解 (適用于單個(gè)屬性)

@Component
public class MyComponent {
    @Value("${server.port}")
    private int serverPort;
    @Value("${app.message: Hello Default}") // 使用冒號(hào)指定默認(rèn)值
    private String message;
    // ... 
}

@ConfigurationProperties 注解 (推薦,用于綁定一組配置)

這是更類(lèi)型安全、更面向?qū)ο蟮姆绞健?/p>

步驟 1:在 application.yml 中定義配置

app:
  user:
    name: "Alice"
    age: 30
    email: "alice@example.com"
    hobbies:
      - reading
      - hiking

步驟 2:創(chuàng)建一個(gè)配置類(lèi)來(lái)綁定這些屬性

@Component
@ConfigurationProperties(prefix = "app.user") // 前綴是 app.user
@Data // Lombok 注解,自動(dòng)生成 getter/setter
// 或者也可以手動(dòng)寫(xiě) getter 和 setter
public class UserProperties {
    private String name;
    private Integer age;
    private String email;
    private List<String> hobbies;
}

步驟 3:在需要的地方注入并使用

@Service
public class MyService {
    @Autowired
    private UserProperties userProperties;
    public void doSomething() {
        System.out.println("User name: " + userProperties.getName());
        System.out.println("User hobbies: " + userProperties.getHobbies());
    }
}

別忘了在啟動(dòng)類(lèi)上添加 @EnableConfigurationProperties 注解(但如果你像上面一樣在配置類(lèi)上使用了 @Component,則不需要)。

五、常用配置示例

# 服務(wù)器配置
server:
  port: 8080
  servlet:
    context-path: /api # 應(yīng)用上下文路徑
# 數(shù)據(jù)源配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
  # JPA 配置
  jpa:
    hibernate:
      ddl-auto: update # 生產(chǎn)環(huán)境不要用 create-drop 或 update
    show-sql: true
# 日志配置
logging:
  level:
    root: info
    org.springframework.web: debug
    com.example: trace
  file:
    name: logs/myapp.log # 輸出到文件
# 自定義配置
myapp:
  feature:
    enabled: true
    api-url: https://api.example.com

總結(jié)

Spring Boot 的參數(shù)配置系統(tǒng)非常靈活和強(qiáng)大,其核心思想是:

  • 約定大于配置:提供了大量默認(rèn)配置,開(kāi)箱即用。
  • 配置外部化:允許你通過(guò)文件、命令行、環(huán)境變量等多種方式覆蓋默認(rèn)配置,輕松適應(yīng)不同環(huán)境。
  • 類(lèi)型安全綁定:通過(guò) @ConfigurationProperties 可以輕松地將一組配置映射到 Java Bean 上,是管理自定義配置的首選方式。

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

相關(guān)文章

  • Java?延時(shí)隊(duì)列及簡(jiǎn)單使用方式詳解

    Java?延時(shí)隊(duì)列及簡(jiǎn)單使用方式詳解

    這篇文章主要介紹了Java延時(shí)隊(duì)列簡(jiǎn)單使用方式,通過(guò)本文學(xué)習(xí)知道延時(shí)隊(duì)列是什么可以用來(lái)干什么,本文通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • Java解析XML格式數(shù)據(jù)的方法詳解

    Java解析XML格式數(shù)據(jù)的方法詳解

    這篇文章主要介紹了Java解析XML格式數(shù)據(jù)的方法,并展示了較為常用的Java dom來(lái)解析XML的例子,需要的朋友可以參考下
    2015-10-10
  • Spring Boot 2 Thymeleaf服務(wù)器端表單驗(yàn)證實(shí)現(xiàn)詳解

    Spring Boot 2 Thymeleaf服務(wù)器端表單驗(yàn)證實(shí)現(xiàn)詳解

    這篇文章主要介紹了Spring Boot 2 Thymeleaf服務(wù)器端表單驗(yàn)證實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot中14個(gè)日志使用技巧分享

    SpringBoot中14個(gè)日志使用技巧分享

    日志是軟件開(kāi)發(fā)中不可或缺的一部分,它能幫助我們了解應(yīng)用運(yùn)行狀態(tài)、調(diào)試問(wèn)題和監(jiān)控性能,下面我們來(lái)看看14個(gè)SpringBoot日志使用技巧,希望對(duì)大家有所幫助
    2025-05-05
  • Java Enum和String及int的相互轉(zhuǎn)化示例

    Java Enum和String及int的相互轉(zhuǎn)化示例

    這篇文章主要介紹了Java Enum和String及int的相互轉(zhuǎn)化示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java基礎(chǔ)高級(jí)綜合練習(xí)題撲克牌的創(chuàng)建

    Java基礎(chǔ)高級(jí)綜合練習(xí)題撲克牌的創(chuàng)建

    今天小編就為大家分享一篇關(guān)于Java基礎(chǔ)高級(jí)綜合練習(xí)題撲克牌的創(chuàng)建,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • Java中synchronized實(shí)現(xiàn)原理詳解

    Java中synchronized實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了Java中synchronized實(shí)現(xiàn)原理詳解,涉及synchronized實(shí)現(xiàn)同步的基礎(chǔ),Java對(duì)象頭,Monitor,Mark Word,鎖優(yōu)化,自旋鎖等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • 5分鐘讓你快速掌握java8 stream常用開(kāi)發(fā)技巧

    5分鐘讓你快速掌握java8 stream常用開(kāi)發(fā)技巧

    這篇文章主要給大家介紹了關(guān)于java8 stream常用開(kāi)發(fā)技巧的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SpringBoot使用FastExcel實(shí)現(xiàn)多級(jí)表頭動(dòng)態(tài)數(shù)據(jù)填充導(dǎo)出

    SpringBoot使用FastExcel實(shí)現(xiàn)多級(jí)表頭動(dòng)態(tài)數(shù)據(jù)填充導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何使用FastExcel實(shí)現(xiàn)多級(jí)表頭動(dòng)態(tài)數(shù)據(jù)填充導(dǎo)出功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-12-12
  • Springboot項(xiàng)目平滑關(guān)閉及自動(dòng)化關(guān)閉腳本

    Springboot項(xiàng)目平滑關(guān)閉及自動(dòng)化關(guān)閉腳本

    這篇文章主要為大家詳細(xì)介紹了Springboot項(xiàng)目平滑關(guān)閉及自動(dòng)化關(guān)閉腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評(píng)論

府谷县| 曲沃县| 文成县| 衡阳县| 阜康市| 马龙县| 建平县| 土默特右旗| 兴山县| 玛沁县| 巴彦县| 汤原县| 双牌县| 邵武市| 中宁县| 马尔康县| 定安县| 堆龙德庆县| 方正县| 石泉县| 永吉县| 镇康县| 临猗县| 东台市| 五指山市| 宁陕县| 宁陵县| 德保县| 墨竹工卡县| 桃园市| 九寨沟县| 宁武县| 武义县| 钦州市| 原平市| 满城县| 浏阳市| 长丰县| 富锦市| 日土县| 宁德市|