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

項(xiàng)目中SpringBoot配置文件未生效的原因分析與解決方法

 更新時(shí)間:2025年09月04日 08:35:32   作者:網(wǎng)羅開發(fā)  
在日常開發(fā) Spring Boot 項(xiàng)目的時(shí)候,大家應(yīng)該都遇到過這樣一種情況:明明寫了 application.yml,但是項(xiàng)目跑起來之后,配置好像完全沒被加載,下面我們就來聊聊Spring Boot 配置文件未生效 的幾個(gè)典型場景與解決方法吧

前言

在日常開發(fā) Spring Boot 項(xiàng)目的時(shí)候,大家應(yīng)該都遇到過這樣一種情況:明明寫了 application.yml,但是項(xiàng)目跑起來之后,配置好像完全沒被加載。比如數(shù)據(jù)庫連接還是舊的值,日志級別也沒生效。這種情況其實(shí)挺常見,往往不是 Spring Boot 本身有問題,而是我們在配置文件路徑、Profile 激活或者 IDE 啟動(dòng)參數(shù)上出了岔子。

這篇文章就來聊聊 Spring Boot 配置文件未生效 的幾個(gè)典型場景,并配合 Demo 代碼來演示如何解決。

配置文件路徑問題

首先需要明確:Spring Boot 默認(rèn)會(huì)從以下位置加載配置文件(優(yōu)先級從高到低):

  • classpath:/application.yml
  • classpath:/config/application.yml
  • file:./application.yml
  • file:./config/application.yml

所以,如果你把 application.yml 放在了一個(gè)奇怪的位置(比如 resources/configs/),自然不會(huì)生效。

來看個(gè)例子:

# src/main/resources/application.yml
server:
  port: 8081

spring:
  application:
    name: demo-app

然后寫一個(gè)最簡單的 Spring Boot 應(yīng)用:

@SpringBootApplication
@RestController
public class DemoApplication {

    @Value("${server.port}")
    private int port;

    @GetMapping("/hello")
    public String hello() {
        return "App is running on port: " + port;
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

如果 application.yml 正常被加載,啟動(dòng)后訪問 http://localhost:8081/hello,會(huì)看到:

App is running on port: 8081

但如果你把 application.yml 放到 src/main/resources/configs/application.yml,那它就不會(huì)生效,Spring Boot 根本不會(huì)去那個(gè)目錄找。

解決辦法:要么挪到正確路徑,要么用 --spring.config.location 指定路徑:

java -jar demo.jar --spring.config.location=classpath:/configs/

Profile 沒有正確激活

Spring Boot 支持多環(huán)境配置,比如:

# application.yml
spring:
  profiles:
    active: dev
# application-dev.yml
server:
  port: 8082

# application-prod.yml
server:
  port: 8083

如果你沒激活 profile,那么默認(rèn)只會(huì)加載 application.yml。有時(shí)候大家忘記在 application.yml 里寫 spring.profiles.active,導(dǎo)致環(huán)境配置根本沒切換。

另一種情況是你在 IDEA 里配置了 VM options,例如:

-Dspring.profiles.active=prod

那就會(huì)優(yōu)先使用 application-prod.yml,而不是 application-dev.yml。

小 Demo 驗(yàn)證

@Value("${server.port}")
private int port;

@GetMapping("/profile")
public String profile() {
    return "Running on port: " + port;
}

當(dāng)激活 dev 時(shí),返回 Running on port: 8082;當(dāng)激活 prod 時(shí),返回 Running on port: 8083

如果你明明寫了 application-dev.yml 卻發(fā)現(xiàn)不起作用,那大概率是 spring.profiles.active 沒有正確指定。

IDEA 啟動(dòng)配置的問題

很多同學(xué)在用 IDEA 跑 Spring Boot 項(xiàng)目的時(shí)候,遇到配置不生效,其實(shí)是因?yàn)?IDEA 的 Run/Debug Configurations 里沒傳遞參數(shù)。

比如你在命令行里用:

java -jar demo.jar --spring.profiles.active=dev

是沒問題的。

但是在 IDEA 里如果你什么都不配,就可能跑成默認(rèn)環(huán)境。正確做法是在 Run/Debug Configurations → VM options 里加上:

-Dspring.profiles.active=dev

這樣無論是運(yùn)行還是調(diào)試,都會(huì)加載對應(yīng)的配置文件。

實(shí)際場景舉例

舉個(gè)比較真實(shí)的場景:

有個(gè)同事寫了 application-dev.yml 配置了數(shù)據(jù)庫連接:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: root123

結(jié)果啟動(dòng)的時(shí)候報(bào)錯(cuò):

Cannot load driver class: com.mysql.cj.jdbc.Driver

后來排查發(fā)現(xiàn),原因有兩個(gè):

  • application-dev.yml 沒生效,因?yàn)?spring.profiles.active 沒指定;
  • Maven 依賴缺少 mysql-connector-java。

改好之后就正常運(yùn)行了。這個(gè)案例說明:配置文件問題往往不止一個(gè),要結(jié)合日志一步步分析。

總結(jié)

Spring Boot 配置文件未生效主要有三個(gè)大坑:

  • 路徑問題:放錯(cuò)位置,Spring Boot 根本找不到。
  • Profile 激活問題:沒指定 spring.profiles.active,導(dǎo)致環(huán)境沒切換。
  • IDEA 配置問題:運(yùn)行參數(shù)沒傳遞,結(jié)果和預(yù)期不一致。

我的建議是:

  • 路徑一定放在標(biāo)準(zhǔn)目錄;
  • 配置多環(huán)境時(shí),一定檢查 spring.profiles.active;
  • 用 IDEA 啟動(dòng)時(shí),確保 VM options 和命令行一致;
  • 另外,多看看啟動(dòng)日志,Spring Boot 在啟動(dòng)時(shí)會(huì)打印加載了哪些配置文件,非常直觀。

到此這篇關(guān)于項(xiàng)目中SpringBoot配置文件未生效的原因分析與解決方法的文章就介紹到這了,更多相關(guān)SpringBoot配置文件未生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PostMan傳@RequestParam修飾的數(shù)組方式

    PostMan傳@RequestParam修飾的數(shù)組方式

    這篇文章主要介紹了PostMan傳@RequestParam修飾的數(shù)組方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解java代碼中init method和destroy method的三種使用方式

    詳解java代碼中init method和destroy method的三種使用方式

    這篇文章主要介紹了詳解java代碼中init method和destroy method的三種使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Intellij?IDEA?中調(diào)試?maven?插件的步驟

    Intellij?IDEA?中調(diào)試?maven?插件的步驟

    這篇文章主要介紹了Intellij?IDEA?中調(diào)試?maven?插件,本文分步驟給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Java抽象類和抽象方法定義與用法實(shí)例詳解

    Java抽象類和抽象方法定義與用法實(shí)例詳解

    這篇文章主要介紹了Java抽象類和抽象方法定義與用法,結(jié)合實(shí)例形式詳細(xì)分析了Java抽象類和抽象方法相關(guān)原理、定義、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • 關(guān)于Spring?Boot項(xiàng)目的?log4j2?核彈漏洞問題(一行代碼配置搞定)

    關(guān)于Spring?Boot項(xiàng)目的?log4j2?核彈漏洞問題(一行代碼配置搞定)

    相信昨天,很多小伙伴都因?yàn)長og4j2的史詩級漏洞忙翻了吧,不過我看到群里發(fā)出來的各種修復(fù)方法,還真是不好看...所以這里也提一下Spring Boot用戶怎么修復(fù)最簡單吧,對Spring Boot log4j2 核彈漏洞問題感興趣的朋友參考下吧
    2021-12-12
  • 解決httpServletRequest.getParameter獲取不到參數(shù)的問題

    解決httpServletRequest.getParameter獲取不到參數(shù)的問題

    這篇文章主要介紹了解決httpServletRequest.getParameter獲取不到參數(shù)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot自動(dòng)裝配原理及分析

    SpringBoot自動(dòng)裝配原理及分析

    SpringBoot通過@SpringBootApplication注解啟動(dòng)自動(dòng)裝配,其中@EnableAutoConfiguration導(dǎo)入AutoConfigurationImportSelect類,讀取META-INF下的配置文件,根據(jù)@Conditional條件篩選并注入符合條件的Bean到IOC容器
    2025-09-09
  • Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源

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

    這篇文章主要介紹了Spring boot如何快速的配置多個(gè)Redis數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • MybatisPlus字段自動(dòng)填充失效,填充值為null的解決方案

    MybatisPlus字段自動(dòng)填充失效,填充值為null的解決方案

    這篇文章主要介紹了MybatisPlus字段自動(dòng)填充失效,填充值為null的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java語言面向?qū)ο缶幊趟枷胫惻c對象實(shí)例詳解

    Java語言面向?qū)ο缶幊趟枷胫惻c對象實(shí)例詳解

    這篇文章主要介紹了Java語言面向?qū)ο缶幊趟枷胫惻c對象實(shí)例詳解,還是十分不錯(cuò)的,這里給大家分享下,需要的朋友可以參考。
    2017-10-10

最新評論

平南县| 东城区| 东莞市| 三都| 连云港市| 泸州市| 琼结县| 聊城市| 屯门区| 汤阴县| 靖远县| 怀化市| 堆龙德庆县| 新干县| 阳山县| 宝鸡市| 天祝| 扶余县| 会昌县| 延安市| 贵州省| 察雅县| 凭祥市| 甘德县| 肃南| 留坝县| 清丰县| 隆回县| 睢宁县| 元氏县| 防城港市| 上蔡县| 鸡东县| 尼勒克县| 朝阳区| 临武县| 新巴尔虎右旗| 兴仁县| 汉源县| 三都| 青川县|