0
点赞
收藏
分享

微信扫一扫

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

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

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

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

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

案例

1.搭建演示工程 springboot-config


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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

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


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

# 设置启动端口号
server.port=8082

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

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



举报

相关推荐

0 条评论