当前位置: 首页 > ds >正文

Java打包在加载外面的yaml文件

主要是下面这个配置

--spring.config.location

-spring.config.location=...

举个例子:

CONFIG_FILES="--spring.config.location=file:$BASE_PATH/application.yaml,file:$BASE_PATH/application-dev.yaml"

Spring Boot 应用在启动时指定配置文件路径 的一种方式。

🔍 逐部分解释:

1. --spring.config.location=...

这是 Spring Boot 启动参数,用于告诉程序从哪个位置加载配置文件。默认情况下,Spring Boot 会从 classpath:/application.properties.yaml 读取配置,但使用这个参数可以自定义配置文件路径


2. file:$BASE_PATH/application.yaml,file:$BASE_PATH/application-dev.yaml
  • file: 前缀:表示这是一个 文件系统路径,而不是类路径(classpath)。

  • $BASE_PATH:是一个环境变量或脚本变量,代表你项目或配置文件所在的目录。

  • application.yaml:主配置文件,通常放一些通用配置。

  • application-dev.yaml:开发环境的配置文件,可能会覆盖主配置中的某些值(如数据库地址、端口等)。

两个配置文件用逗号分隔,Spring Boot 会按照顺序加载,后面的文件可以覆盖前面的配置。


✅ 作用总结:

该变量用于启动 Spring Boot 应用时指定:

  • $BASE_PATH 目录下加载两个配置文件

  • 文件是:application.yamlapplication-dev.yaml

  • 后加载的文件会 覆盖前面文件中相同 key 的配置

全部配置:

 

#!/bin/bash
set -eDATE=$(date +%Y%m%d%H%M)
# 基础路径(绝对路径)
BASE_PATH=/opt/service/mall
# 服务名称。同时约定部署服务的 jar 包名字也为它。
SERVER_NAME=hywl-server
# 环境
PROFILES_ACTIVE=dev# 配置文件路径
CONFIG_FILES="--spring.config.location=file:$BASE_PATH/application.yaml,file:$BASE_PATH/application-dev.yaml"# heapError 存放路径
HEAP_ERROR_PATH=$BASE_PATH/heapError
# JVM 参数
JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH"# SkyWalking Agent 配置
#export SW_AGENT_NAME=$SERVER_NAME
#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800
#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84
#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**"
#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar# 停止:优雅关闭之前已经启动的服务
function stop() {echo "[stop] 开始停止 $BASE_PATH/$SERVER_NAME"PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')# 如果 Java 服务启动中,则进行关闭if [ -n "$PID" ]; then# 正常关闭echo "[stop] $BASE_PATH/$SERVER_NAME 运行中,开始 kill [$PID]"kill -15 $PID# 等待最大 120 秒,直到关闭完成。for ((i = 0; i < 120; i++))dosleep 1PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}')if [ -n "$PID" ]; thenecho -e ".\c"elseecho '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功'breakfidone# 如果正常关闭失败,那么进行强制 kill -9 进行关闭if [ -n "$PID" ]; thenecho "[stop] $BASE_PATH/$SERVER_NAME 失败,强制 kill -9 $PID"kill -9 $PIDfi# 如果 Java 服务未启动,则无需关闭elseecho "[stop] $BASE_PATH/$SERVER_NAME 未启动,无需停止"fi
}# 启动:启动后端项目
function start() {# 开启启动前,打印启动参数echo "[start] 开始启动 $BASE_PATH/$SERVER_NAME"echo "[start] JAVA_OPS: $JAVA_OPS"echo "[start] JAVA_AGENT: $JAVA_AGENT"echo "[start] PROFILES: $PROFILES_ACTIVE"# 开始启动nohup java -server $JAVA_OPS $JAVA_AGENT -Dapp.home=$BASE_PATH -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE $CONFIG_FILES > nohup.out 2>&1 &echo "[start] 启动 $BASE_PATH/$SERVER_NAME 完成"
}# 部署
function deploy() {cd $BASE_PATH# 第一步:停止 Java 服务stop# 第二步:启动 Java 服务start
}deploy

http://www.xdnf.cn/news/10005.html

相关文章:

  • 2025LitCTF 复现
  • 【SQL】关键字
  • 【笔记】suna部署之获取 Supabase API key 和 project URL
  • 【笔记】suna部署之获取 Tavily API key
  • 第42节:模型优化与部署:Web服务部署(Flask, FastAPI)
  • Arduino LCD 1602液晶显示器2(I2C总线)
  • ubuntu 22.04 编译安装nignx 报错 openssl 问题
  • 【VMware Workstation 17 Pro许可证密钥】
  • 如何站在指标体系之巅看智能数据建模产品(GAI)
  • 使用k8s服务进行端口代理
  • 3D拟合测量水杯半径
  • C++ 模板参数包展开方式
  • 微服务架构设计规范
  • 详解GPU
  • 湖北理元理律师事务所观察:债务优化如何成为民生安全网
  • APM32微控制器键盘PCB设计实战教程
  • Docker 本地化部署FireCrawl
  • 《Pytorch深度学习实践》ch1-线性模型
  • Axure RP11安装、激活、汉化
  • ubuntu24.04与ubuntu22.04比,有什么新特性?
  • 增删改常用的元素
  • 欧盟MID认证,助力全球新能源高效计量与管理
  • leetcode hot100刷题日记——26.环形链表
  • 第七届下一代数据驱动网络国际学术会议(NGDN 2025)
  • JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码
  • DMBOK对比知识点对比(2)
  • 【数据结构】栈和队列(下)
  • python打卡day39@浙大疏锦行
  • vite配置一个css插件
  • MySQL字段为什么要求定义为not null ?