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

Spring无法识别config目录下的application.properties问题求助

解决Spring无法识别config文件夹中application.properties的问题

常见排查与修复方案

1. 确认配置文件目录位置

Spring Boot对配置文件的加载有固定优先级,config文件夹的位置要符合规则:

  • 若放在项目根目录,需和src文件夹同级,不能嵌套在src内部
  • 若放在classpath下,必须是src/main/resources/config,这是Spring Boot默认扫描的classpath子目录

2. 显式指定配置文件路径

自动扫描失效时,强制指定路径:

  • 代码方式:修改启动类main方法,添加配置路径指定
@SpringBootApplication
public class Server {
    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(Server.class);
        // 指向classpath下的config目录
        application.setDefaultProperties(Map.of("spring.config.location", "classpath:/config/"));
        application.run(args);
    }
}
  • VM参数方式:确保参数路径准确,比如:
    -Dspring.config.location=classpath:/config/application.properties
    
    如果是项目根目录下的config,路径改为file:./config/application.properties

3. 校验IntelliJ资源配置

即使标记了资源文件夹,也要确认打包规则:

  1. 打开File -> Project Structure -> Modules,选中你的模块
  2. 切换到Resources标签,检查config文件夹的Resource Pattern为**/*,且无排除规则
  3. 执行Build -> Rebuild Project,确保资源文件被正确打包到classpath

4. 检查配置文件语法细节

你的配置里server.port = 8090存在空格,虽然Spring Boot兼容,但建议改为server.port=8090避免潜在解析问题;同时确认${MYSQL_HOST:URL}中的默认值URL是有效的数据库地址。

5. 验证配置是否生效

启动项目后,可通过两种方式验证:

  • 查看控制台日志,搜索关键词Config data loaded from,确认是否加载到目标配置文件
  • 在代码中注入Environment打印配置项:
@Autowired
private Environment env;

// 在任意Bean的初始化方法中打印
@PostConstruct
public void checkConfig() {
    System.out.println("当前端口:" + env.getProperty("server.port"));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:30:40