目录
一、SpringBoot 支持的配置文件格式
1、三种常见配置文件
1.1 配置文件类型
-
application.properties -
application.yml -
application.yaml
这三种格式都可以用来配置属性。但是在项目开发时,推荐统一使用一种格式的配置。
二、配置文件优先级比较
1、同一属性多文件配置时优先级
1.1 现象描述
如果三种配置文件中都配置了同一个属性(例如服务器端口 server.port),系统会根据优先级确定哪一个生效。
1.2 实验验证
-
application.properties中配置server.port=8080 -
application.yml中配置server.port=8082 -
application.yaml中配置server.port=8083
依次启动服务并注释掉不同文件中的配置,观察生效端口号。
1. 不注释

2. 注释掉properties

1.3 结果
-
优先级最高:
application.properties -
次之:
application.yml -
最低:
application.yaml
三、除了配置文件还有其他配置方式
1、额外支持的配置方式

这里的配置优先级高于文件属性配置 。
1.1 Java 系统属性配置
通过 VM options 配置,例如:
-Dserver.port=9000
配置方式:在 IDE 中 Run Configuration 的 VM options 添加。
1.2 命令行参数配置
直接在运行时指定,例如:
--server.port=10001
配置方式:在 Program Arguments 添加。

四、系统属性与命令行参数优先级比较
1、实验验证
1.1 配置测试
在 VM options 和 Program Arguments 同时指定端口号,观察哪个优先生效。
-
VM options 配置
server.port=9000 -
Program Arguments 配置
--server.port=10001
1.2 结果
-
命令行参数(Program Arguments)优先级高于 Java 系统属性(VM options)

五、打包运行时如何设置端口
1、打包运行
1.1 打包命令
使用 Maven 打包:

生成 .jar 文件。
注意事项:Springboot项目进行打包时,需要引入插件 spring-boot-maven-plugin(基于官网骨架创建项目,会自动添加该插件)
1.2 运行 jar 文件
默认运行:
java -jar your-application.jar

带上系统属性或命令行参数运行:
-
Java 系统属性:
java -Dserver.port=9000 -jar your-application.jar

-
命令行参数:
java -jar your-application.jar --server.port=10001

2、运行时优先级验证
通过加上不同参数,观察服务启动后的端口变化。
六、最终配置优先级总结
优先级从高到低
-
命令行参数(Program Arguments)
-
Java 系统属性(VM options)
-
application.properties -
application.yml -
application.yaml
END
学习自:黑马程序员——JavaWeb课程
1602

被折叠的 条评论
为什么被折叠?



