You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot如何指定外部application.properties覆盖默认配置文件?

解决Spring Boot指定外部配置文件覆盖默认配置的问题

你的代码里用@PropertySource没生效,是因为Spring Boot默认配置文件(resources下的application.properties)的加载优先级高于@PropertySource,所以需要用优先级更高的方式来指定外部配置文件,下面是几种可行方案:

方案一:启动时通过命令行参数指定

直接在启动jar包时添加参数,优先级最高:

java -jar your-app.jar --spring.config.location=file:D:\application.properties

如果是在IDEA等IDE中运行,可以在「Run/Debug Configurations」的「Program arguments」里添加:

--spring.config.location=file:D:\application.properties

方案二:在main方法中配置SpringApplication

修改启动类的main方法,显式设置配置文件路径:

@SpringBootApplication
import java.util.Collections;
public class MyWebAppApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(MyWebAppApplication.class);
        app.setDefaultProperties(Collections.singletonMap("spring.config.location", "file:D:\\application.properties"));
        app.run(args);
    }

}

或者用SpringApplicationBuilder的方式:

@SpringBootApplication
public class MyWebAppApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(MyWebAppApplication.class)
                .properties("spring.config.location=file:D:\\application.properties")
                .run(args);
    }

}

方案三:通过环境变量指定

设置系统环境变量SPRING_CONFIG_LOCATION为file:D:\application.properties,Spring Boot会自动读取这个环境变量来加载配置文件。

注意:如果想让外部配置文件和默认配置文件共存,仅用外部配置补充或覆盖默认配置,可以改用spring.config.additional-location参数,而非完全替换默认配置路径。

内容的提问来源于stack exchange,提问作者Divyanshu Supehia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:29:59