springboot 读取不到默认配置文件application.yaml

一、

先分析下springboot读取配置文件的原理,源码在org.springframework.boot.context.config.ConfigFileApplicationListener.classload(ConfigFileApplicationListener.Profile profile, ConfigFileApplicationListener.DocumentFilterFactory filterFactory, ConfigFileApplicationListener.DocumentConsumer consumer)方法里,

我们可以看到加载默认配置文件名称由三个部分组成:

  • 前缀:classpath:/classpath:/config/file:./file:./config/file:./config/*/
  • 后缀: properties,xml,yml,yaml
  • 中间文件名: application或者application-(这种需要在pom文件配置properties)或者bootstrap或者bootstrap-(同上)

三个部分自由组合得到一个文件名,逐一遍历加载一遍,由此看到默认加载路径可以是/src/main/resources下的/,/config,/*/config

二、常见错误,

1. 把配置文件放在/src/main/resources下的conf文件夹

2. 配置POM文件的<build><resources>时,习惯性把targetPath配成/conf

3. 配置了支持多环境(application-dev.yaml,application-sit.yaml,application-prod.yaml)的profiles,而没有配buildresources

三、记录下加载数据库的源码

  • 数据库的自动配置:org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class
  • 数据库的配置:org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.class
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐