Spring Boot 外置配置(不用改代码、不用重新编译、不用重新打包)

Spring Boot 外置配置完整学习笔记(生产可用版)

适用:Spring Boot 1.x/ 2.x/ 3.x,以你当前 LIMS 项目为例


一、什么是外置配置?

  • 把原本打包在 jar 内部的 application.yml/application.properties 放到 jar 同级目录
  • 用于:修改配置不用重新打包、不用重新编译、不用改代码
  • 典型场景:改数据库、改日志路径、改端口、切换环境

二、外置配置优先级(核心规则)

优先级从高到低:

  1. 项目运行目录下的配置文件(jar 同级)
  2. classpath:/ 下(jar 内部)

一句话:外置配置 > jar 内部配置只覆盖你写的项,没写的自动继承内部配置


三、支持的默认文件名(无需改启动命令)

以下名称放在 jar 同级目录启动时自动加载,无需任何参数:

1)通用默认名

  • application.yml
  • application.properties

2)按环境区分(多环境必备)

  • application-dev.yml 开发环境
  • application-test.yml 测试环境
  • application-prod.yml 生产环境

使用方式:启动命令指定环境:

plaintext

--spring.profiles.active=prod

Spring Boot 会自动加载:

plaintext

application-prod.yml

四、自定义配置文件名(如 newTest.yml)

必须修改启动命令,否则不识别!

示例:配置文件名:newTest.yml

启动参数增加:

plaintext

--spring.config.name=newTest

注意:后缀 .yml 不用写


五、外置配置内容怎么写?(最重要)

不需要把整个配置复制出来!

只写你要修改 / 覆盖的项,其余自动使用 jar 内部配置。

例:只想改日志路径外置 application.yml 只需要写:

yaml

logging:
  file:
    name: /home/lims/LimsDeploy/lims-server/logs/lims-server.log

六、外置配置存放位置规范(生产环境)

推荐位置

plaintext

你的项目目录/
├── xxx.jar
├── application.yml         # 外置配置
└── logs/                   # 日志目录

日志路径必须使用【绝对路径】

yaml

logging:
  file:
    name: /home/lims/LimsDeploy/lims-server/logs/lims-server.log
  • 相对路径会随启动目录变化,日志乱飞
  • /tmp 目录会被系统自动清理,严禁使用

七、systemd 下使用外置配置示例

以你的项目为例:

1)文件结构

plaintext

/home/lims/LimsDeploy/lims-server/
├── lims-server-1.0-SNAPSHOT.jar
└── application.yml      # 外置配置

2)lims-server.service

ini

ExecStart=java -jar lims-server-1.0-SNAPSHOT.jar --spring.profiles.active=prod

3)生效步骤

bash

运行

# 1. 修改配置后
systemctl daemon-reload

# 2. 重启服务
/lims.sh reload-server

八、一张表彻底记住(可直接复制进笔记)

表格

配置文件名是否需要修改启动命令适用场景
application.yml单环境、简单项目
application-prod.yml否(需指定 active=prod)生产环境标准
自定义名如 newTest.yml是(需 spring.config.name)特殊定制场景

九、关键结论(背诵版)

  1. 外置配置优先级高于内部
  2. 只覆盖配置项,不需要全量复制
  3. 默认文件名不用改启动命令
  4. 自定义文件名必须指定 --spring.config.name
  5. 日志、路径一律使用绝对路径
  6. 生产环境禁止使用 /tmp 存放日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值