springboot原理篇-配置优先级

springboot原理篇-配置优先级(一)

springboot项目一个支持三种配置文件

  • application.properties
  • application.yml
  • application.yaml

其中,优先级的顺序是:

application.properties > application.yml > application.yaml

也就是说,优先级低的配置文件如果和优先级高的配置文件定义相同的配置信息,那么优先级高的会覆盖掉优先级低的配置文件

例如:

  • application.yml
server:
   port: 8082
  • application.yaml

    server:
       port: 8083
    

上述的配置文件中,生效的端口是8082,yaml文件中的端口不会被启用

注意事项:

虽然springboot支持多种格式配置文件,但是在项目开发时,推荐统一使用一种格式的配置 (yml是主流)。

SpringBoot 除了支持配置文件属性配置,还支持Java系统属性命令行参数的方式进行属性配置。

  1. Java系统属性配置 (格式: -Dkey=value)

    -Dserver.port=9000
    
  2. 命令行参数 (格式:–key=value)

    --server.port=10010
    

在这里插入图片描述

在这里插入图片描述

优先级: 命令行参数 > 系统属性参数 > properties参数 > yml参数 > yaml参数

思考:如果项目已经打包上线了,这个时候我们又如何来设置Java系统属性和命令行参数呢?

java -Dserver.port=9000 -jar XXXXX.jar --server.port=10010

在这里插入图片描述

  • 仅设置Java系统属性

在这里插入图片描述

在SpringBoot项目当中,常见的属性配置方式有5种, 3种配置文件,加上2种外部属性的配置(Java系统属性、命令行参数)。通过以上的测试,我们也得出了优先级(从低到高):

  • application.yaml(忽略)
  • application.yml
  • application.properties
  • java系统属性(-Dxxx=xxx)
  • 命令行参数(–xxx=xxx)
    plication.yml
  • application.properties
  • java系统属性(-Dxxx=xxx)
  • 命令行参数(–xxx=xxx)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值