Spring Boot 属性配置全解析

目录

Spring Boot 属性配置全解析

一、项目配置文件

二、命令行参数方式

三、环境变量方式

四、外部配置文件方式

五、配置优先级


在 Spring Boot 项目部署中,属性配置是一项关键任务。本文将详细介绍 Spring Boot 的几种常见属性配置方式,包括项目配置文件、命令行参数、环境变量以及外部配置文件,并探讨它们的优先级。

一、项目配置文件

Spring Boot 提供了两类配置文件:propertiesyml(或yaml),开发中更多使用yml配置文件。在配置文件中,我们可以通过键值对的方式完成属性配置,例如配置端口号:

server:
  port: 8080

然而,这种配置方式存在局限性。当项目打成 jar 包交给运维或客户后,他们无法直接修改属性。

二、命令行参数方式

  1. 格式
    在运行java -jar命令时,可在后面添加参数,格式为--键=值。例如修改端口号:

java -jar your-jar-file.jar --server.port=9999

  1. 原理
    添加的参数会传递给启动类的main方法,在main方法中用String[] args数组接收,启动 Spring 应用时又将该数组传递给run方法,从而实现属性修改。
  2. 演示
    • 先停止已启动的应用(可按CTRL + C)。
    • 打开命令行窗口,执行java -jar命令并添加端口参数,如java -jar big-xxx.jar --server.port=9999big-xxx.jar为实际的 jar 包名,可按tab键补齐)。
    • 启动完成后,可观察到端口已成功修改为 9999。

三、环境变量方式

  1. 设置变量
    在环境变量中添加属性,变量名和值需与 Spring Boot 中所需的键和值保持一致。例如,设置端口为 7777:
    • 右键点击 “此电脑”,选择 “属性”。
    • 找到 “高级系统设置”,点击 “环境变量”。
    • 在 “用户变量” 下新建变量,变量名设为SERVER_PORT(注意大写),值为7777
  2. 注意事项
    如果环境变量发生变化,需要重新启动命令行窗口才能生效。
  3. 演示
    • 设置好环境变量后,在命令行中先停止之前的程序(CTRL + C)。
    • 重新打开一个命令行窗口(若不重新打开,端口号可能不会生效),执行java -jar your-jar-file.jar(不带端口参数)。
    • 启动完成后,可看到端口绑定为 7777。

四、外部配置文件方式

  1. 创建配置文件
    在 jar 包所在的目录下,提供一个application.yml(或application.properties)配置文件,可批量配置要修改的属性。例如:

server:
  port: 6666

  1. 演示
    • 找到 jar 包所在目录(如target目录)。
    • 将原有的application.yml(或application.properties)配置文件复制到该目录下(若不存在则新建)。
    • 用记事本打开复制过来的配置文件,修改端口号等属性(如上述示例将端口设为 6666),保存并关闭。
    • 在命令行中停止之前的程序,删除环境变量中的相关属性(若有),关闭命令行窗口并重新打开。
    • 进入 jar 包所在目录,执行java -jar your-jar-file.jar,可观察到端口已按配置文件中的设置绑定为 6666。

五、配置优先级

当同时通过上述四种方式配置相同属性时,它们的优先级从上往下依次变高,即命令行参数 > 环境变量 > jar 包所在目录下的application.yml(或application.properties)> 项目中的resources目录下的application.yml(或application.properties)。

  1. 验证优先级
    • 分别在项目的resources目录下的application.yml中配置server.port: 8081
    • 在 jar 包所在目录下的application.yml中配置server.port: 8082
    • 在系统环境变量中新建SERVER_PORT=8083
    • 在命令行执行java -jar your-jar-file.jar --server.port=8084
    • 启动程序,观察端口号,会发现是 8084,符合优先级顺序。
    • 然后去掉命令行参数重新启动,端口号变为 8083(环境变量生效)。
    • 删除环境变量中的端口配置,重新启动,端口号变为 8082(jar 包所在目录下的配置文件生效)。
    • 将 jar 包所在目录下的application.yml重命名或删除,重新打 jar 包并启动,端口号变为 8081(项目中的配置生效)。

Spring Boot 提供了多种属性配置方式,各有优劣和适用场景。在实际开发中,根据需求灵活运用这些配置方式,并了解它们的优先级关系,有助于更好地部署和管理 Spring Boot 项目。希望本文能帮助大家深入理解 Spring Boot 的属性配置机制,在项目开发中更加得心应手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值