前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >9-SpringBoot配置-项目内部配置文件加载顺序

9-SpringBoot配置-项目内部配置文件加载顺序

作者头像
Devops海洋的渔夫
发布2022-03-23 15:45:24
3250
发布2022-03-23 15:45:24
举报
文章被收录于专栏:Devops专栏

9-SpringBoot配置-项目内部配置文件加载顺序

SpringBoot配置-项目内部配置文件加载顺序

加载顺序为从上到下的排列顺序,高优先级配置的属性会生效

  • file:./config/:当前项目下的/config目录下
  • file:./ :当前项目的根目录
  • classpath:/config/:classpath的/config目录
  • classpath:/ :classpath的根目录 (工程下的resources目录)

案例

1.搭建演示工程 springboot-config

2. 测试 classpath:/ :classpath的根目录 (工程下的resources目录)

在 resource 目录下的 application.properties 配置端口号,启动服务如下:

可以看到配置已经生效了,那么下一步我们在另一个优先级更高的目录进行配置。

3.测试 classpath:/config/:classpath的/config目录

因为 config/ 目录下的配置文件优先级更高,所以会覆盖 优先级低的配置,启动为 8083 的端口号。

4.测试 file:./ :当前项目的根目录

前面我们测试的都是在项目模块中的配置,而工程根目录下的优先级将会更高,作为多个模块的统一配置。

5.测试 file:./config/:当前项目下的/config目录下

对于整个工程来说,优先级最高的配置则是 工程目录下的 config 目录的配置文件,可以看到覆盖了所有配置。

5.验证优先级低的配置文件 【未覆盖的参数】也会被加载到

在上面我们只演示了不同位置配置文件的加载优先级,而优先级比较低的配置文件只有同名参数才会被覆盖,如果是不同名的参数则不会被覆盖。

下面我们修改一下工程路径来验证一下:

代码语言:javascript
复制
# 设置启动端口号
server.port=8082

# 修改工程路径
server.servlet.context-path=/hello

从上面的结果来看,已经验证了一点,优先级较低的配置虽然部分同名配置会被覆盖,但是不同名的配置则会加载生效。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 9-SpringBoot配置-项目内部配置文件加载顺序
    • SpringBoot配置-项目内部配置文件加载顺序
      • 案例
        • 1.搭建演示工程 springboot-config
        • 2. 测试 classpath:/ :classpath的根目录 (工程下的resources目录)
        • 3.测试 classpath:/config/:classpath的/config目录
        • 4.测试 file:./ :当前项目的根目录
        • 5.测试 file:./config/:当前项目下的/config目录下
        • 5.验证优先级低的配置文件 【未覆盖的参数】也会被加载到
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档