JavaWeb——SpringBoot-配置优先级(三种常见配置文件:properties、yml、yaml,Java 系统属性配置,命令行参数配置,打包运行时如何设置端口)

目录

一、SpringBoot 支持的配置文件格式

1、三种常见配置文件

1.1 配置文件类型

二、配置文件优先级比较

1、同一属性多文件配置时优先级

1.1 现象描述

1.2 实验验证

1.3 结果

三、除了配置文件还有其他配置方式

1、额外支持的配置方式

1.1 Java 系统属性配置

1.2 命令行参数配置

四、系统属性与命令行参数优先级比较

1、实验验证

1.1 配置测试

1.2 结果

五、打包运行时如何设置端口

1、打包运行

1.1 打包命令

1.2 运行 jar 文件

2、运行时优先级验证

六、最终配置优先级总结

优先级从高到低



一、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、运行时优先级验证

通过加上不同参数,观察服务启动后的端口变化。


六、最终配置优先级总结

优先级从高到低

  1. 命令行参数(Program Arguments)

  2. Java 系统属性(VM options)

  3. application.properties

  4. application.yml

  5. application.yaml


END


学习自:黑马程序员——JavaWeb课程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值