SpringBoot 提供了多种方式进行属性配置,为了确保配置的灵活性与优先级管理,需要理解不同配置方式的优先级规则。现在总结 SpringBoot 配置方式及其优先级。
配置文件格式
在 SpringBoot 中,支持三种主要格式的配置文件:
-
application.properties:
server.port=8081 -
application.yml:
server:port: 8082 -
application.yaml(内容与
.yml格式相同)。
注意:虽然 SpringBoot 支持多种格式的配置文件,但在实际项目开发中,建议统一使用一种格式,其中 YAML 格式为主流。
配置方式的多样性
除了常见的配置文件,SpringBoot 还支持其他方式对属性进行配置:
1. Java 系统属性
通过 JVM 参数设置属性,例如:
-Dserver.port=9000
-
设置位置:IDE 的运行配置中可以直接配置,如下:
-
在
VM Options中添加:-Dserver.port=9000
-
2. 命令行参数
通过命令行直接指定属性,例如:
--server.port=10010
-
配置方式:
-
使用 IDE 运行时,在
Program arguments中添加:--server.port=10010 -
打包运行时指定,例如:
java -Dserver.port=9000 -jar tlias-web-management-0.0.1-SNAPSHOT.jar --server.port=10010
-
配置方式总结:
-
Java 系统属性 使用
-Dxxx=xxx格式设置。 -
命令行参数 使用
--xxx=xxx格式设置。
配置优先级
在 SpringBoot 中,配置优先级从低到高依次为:
-
application.yaml(最低优先级) -
application.yml -
application.properties -
Java 系统属性(
-Dxxx=xxx) -
命令行参数(
--xxx=xxx)
示例说明: 如果在
application.yml中设置了server.port=8082,但在命令行中使用--server.port=10010,则最终运行时端口为10010。
配置注意事项
-
文件格式的选择:尽量统一使用 yaml格式,避免混用
properties和yaml。 -
打包运行时配置:对于生产环境的动态配置需求,可以使用命令行参数覆盖默认配置。
-
插件支持:打包时,建议引入
spring-boot-maven-plugin插件,该插件由 Spring 官方提供,能自动加载配置文件。
总结
SpringBoot 提供了灵活多样的配置方式,同时通过优先级规则避免配置冲突。在实际开发中,建议:
-
在项目开发阶段,优先使用
application.yml文件管理配置。 -
在部署或测试阶段,根据需要通过 Java 系统属性或命令行参数临时覆盖配置。
-
熟悉并遵循优先级规则,确保项目在不同环境中的配置一致性与灵活性。
