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

Spring Boot无法读取依赖Maven项目中application.properties的问题

问题原因及解决办法

核心原因

Spring Boot默认不会自动读取依赖Jar包根路径下的application.properties,它只会优先加载当前启动项目(member)自身的配置文件,所以即便common项目打包包含了该配置文件,member启动时也不会主动加载。

具体排查点及解决方式

1. 配置文件加载规则问题

Spring Boot的配置文件加载优先级是:当前项目的配置 > 外部配置 > 依赖Jar中的非默认命名配置。要让依赖中的配置生效,推荐用profile拆分配置:

  • 将common项目中的application.properties重命名为application-common.properties
  • 在member项目的application.properties中添加:
    spring.profiles.include=common
    
    这样Spring Boot会自动加载依赖Jar中对应的profile配置文件。

2. Maven打包资源遗漏问题

检查common项目的打包结果,确认application.properties是否被正确打入Jar包:

  • 解压common项目生成的Jar包,查看根目录下是否存在该配置文件
  • 如果缺失,在common项目的pom.xml中添加资源打包配置,确保资源文件被正确打包:
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
    

3. 依赖版本一致性问题

确认member项目依赖的common是最新打包的版本,避免引用的是未包含配置文件的旧Jar包:

  • 执行mvn clean install重新打包common项目
  • 刷新member项目的Maven依赖,确保依赖的是最新的common Jar包

备选方案:通过注解指定加载配置

如果不想修改配置文件名,可以在member项目的启动类或配置类上添加@PropertySource注解指定加载依赖中的配置文件:

@SpringBootApplication
@PropertySource(value = "classpath:application.properties")
public class MemberApplication {
    public static void main(String[] args) {
        SpringApplication.run(MemberApplication.class, args);
    }
}

注意:如果member项目自身也有application.properties,会出现配置覆盖的情况,需谨慎使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:55:10