加载顺序为从上到下的排列顺序,高优先级配置的属性会生效
在 resource 目录下的 application.properties 配置端口号,启动服务如下:
可以看到配置已经生效了,那么下一步我们在另一个优先级更高的目录进行配置。
因为 config/ 目录下的配置文件优先级更高,所以会覆盖 优先级低的配置,启动为 8083 的端口号。
前面我们测试的都是在项目模块中的配置,而工程根目录下的优先级将会更高,作为多个模块的统一配置。
对于整个工程来说,优先级最高的配置则是 工程目录下的 config 目录的配置文件,可以看到覆盖了所有配置。
在上面我们只演示了不同位置配置文件的加载优先级,而优先级比较低的配置文件只有同名参数才会被覆盖,如果是不同名的参数则不会被覆盖。
下面我们修改一下工程路径来验证一下:
# 设置启动端口号
server.port=8082
# 修改工程路径
server.servlet.context-path=/hello
从上面的结果来看,已经验证了一点,优先级较低的配置虽然部分同名配置会被覆盖,但是不同名的配置则会加载生效。