Spring Boot 项目启动命令解析
Spring Boot 项目启动命令参数
一、启动命令基础格式
java [JVM参数] [Spring Boot参数] -jar your-project.jar
-
必选部分:
java -jar your-project.jar
启动可执行 JAR 包。 -
可选部分:
- JVM 参数:控制 Java 虚拟机行为(如内存、垃圾回收)。
- Spring Boot 参数:覆盖 Spring Boot 配置(如环境、端口、配置文件)。
二、核心参数分类及意义
1. Spring Boot 核心配置参数(最常用)
| 参数 | 作用 | 示例(命令行) | 等价配置文件写法 |
|---|---|---|---|
--spring.profiles.active | 指定运行环境(如 dev/prod) | --spring.profiles.active=prod | spring.profiles.active=prod |
--server.port | 修改服务端口(默认 8080) | --server.port=8090 | server.port=8090 |
--spring.config.location | 指定外部配置文件路径(优先级最高) | --spring.config.location=file:/config/ | 无(仅命令行生效) |
--[属性名]=[值] | 直接覆盖任意配置(支持驼峰/下划线) | --myapp.redis.host=192.168.1.1 | myapp.redis.host=192.168.1.1 |
--debug | 开启调试日志(显示自动配置报告) | --debug | debug=true |
2. JVM 关键参数(性能调优必用)
| 参数 | 作用 | 示例(生产环境) | 说明 |
|---|---|---|---|
-Xmx/-Xms | 设置最大/初始堆内存(建议相等) | -Xmx4g -Xms4g | 生产环境建议 Xms=Xmx,避免内存抖动 |
-XX:+UseG1GC | 启用 G1 垃圾收集器(低延迟场景) | -XX:+UseG1GC | 适合大内存应用,可搭配 -XX:MaxGCPauseMillis=200 |
-D参数=值 | 设置系统属性(如时区、编码) | -Duser.timezone=Asia/Shanghai | 全局生效(如日志编码、日期格式) |
3. 环境变量参数(容器化部署常用)
- 格式:环境变量自动映射为 Spring Boot 参数(大写+下划线)。
- 示例:
# Linux/Mac 临时设置 export SERVER_PORT=8081 export SPRING_PROFILES_ACTIVE=dev java -jar your-project.jar# Dockerfile 中定义 ENV SPRING_PROFILES_ACTIVE prod ENV SERVER_PORT 80
三、简易案例(3 大常见场景)
案例 1:开发环境启动(调试模式)
java -jar your-project.jar \--spring.profiles.active=dev \--server.port=8081 \--debug
- 作用:
- 加载
application-dev.properties配置。 - 指定端口为 8081,避免冲突。
- 开启调试日志,显示自动配置细节。
- 加载
案例 2:生产环境优化启动
java -Xmx4g -Xms4g -XX:+UseG1GC \-jar your-project.jar \--spring.profiles.active=prod \--spring.config.location=file:/etc/app/config/ \--server.port=80 \--logging.file.name=/var/log/app.log
- 优化点:
- 固定堆内存为 4G,避免动态调整开销。
- 使用外部配置文件(如数据库密码),不打包敏感信息。
- 日志持久化到
/var/log/app.log,方便分析。
案例 3:远程调试与故障排查
java -agentlib:jdwp=transport=dt_socket,server=y,address=5005,suspend=n \-XX:+HeapDumpOnOutOfMemoryError \-XX:HeapDumpPath=/tmp/ \-jar your-project.jar \--trace
- 用途:
- 开启远程调试(IDE 连接端口 5005)。
- OOM 时生成堆转储文件到
/tmp/。 --trace记录详细请求和数据库操作日志。
四、参数优先级(从高到低)
- 命令行参数(
--key=value) - 环境变量(如
SERVER_PORT=8080) - 外置配置文件(
--spring.config.location指定) - 内置配置文件(
application-{profile}.properties→application.properties) - 框架默认值
五、总结
- 基础命令:
java -jar your-project.jar,通过参数动态配置。 - 高频场景:
- 切换环境:
--spring.profiles.active=xxx - 修改端口:
--server.port=xxx - 内存优化:
-Xmx4g -Xms4g - 外部配置:
--spring.config.location=file:/config/
- 切换环境:
- 最佳实践:
- 生产环境优先用 外部配置 和 环境变量,避免硬编码。
- 开发时用
--debug和--trace辅助排查问题。
相关文章:
Spring Boot 项目启动命令解析
Spring Boot 项目启动命令参数 一、启动命令基础格式 java [JVM参数] [Spring Boot参数] -jar your-project.jar必选部分:java -jar your-project.jar 启动可执行 JAR 包。 可选部分: JVM 参数:控制 Java 虚拟机行为(如内存、垃…...
为什么 Docker 容器中有额外的目录(如 `/dev`、`/proc`、`/sys`)?及 `docker run` 详细执行过程
、当你使用 docker run 启动一个基于极简镜像(如 scratch 或手动构建的镜像)的容器时,发现容器内出现了 /dev、/proc、/sys 等目录,即使你的镜像中并未包含这些目录。这是因为 Docker 在启动容器时,会自动挂载一些必要…...
Tailwind 武林奇谈:bg-blue-400 失效,如何重拾蓝衣神功?
前言 江湖有云,Tailwind CSS,乃前端武林中的轻功秘籍。习得此技,排版如行云流水,配色似御风随形,收放自如,随心所欲。 某日,小侠你奋笔敲码,正欲施展“蓝衣神功”(bg-blue-400),让按钮怒气冲冠、蓝光满面,怎料一招使出,画面竟一片白茫茫大地真干净,毫无半点杀气…...
【Docker 运维】Java 应用在 Docker 容器中启动报错:`unable to allocate file descriptor table`
文章目录 一、根本原因二、判断与排查方法三、解决方法1、限制 Docker 容器的文件描述符上限2、在执行脚本中动态设置ulimit的值3、升级至 Java 11 四、总结 容器内执行脚本时报错如下,Java 进程异常退出: library initialization failed - unable to a…...
开始放飞之先搞个VSCode
文章目录 开始放飞之先搞个VSCode重要提醒安装VSCode下载MinGW-w64回到VSCode中去VSCode原生调试键盘问题遗留问题参考文献 开始放飞之先搞个VSCode 突然发现自己的新台式机上面连个像样的编程环境都没有,全是游戏了!!!ÿ…...
基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线。输出指标包括最小平均流动时间,最大完工时间,最小间隙时间。 2…...
【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现
SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…...
基于Redis实现高并发抢券系统的数据同步方案详解
在高并发抢券系统中,我们通常会将用户的抢券结果优先写入 Redis,以保证系统响应速度和并发处理能力。但数据的最终一致性要求我们必须将这些结果最终同步到 MySQL 的持久化库中。本文将详细介绍一种基于线程池 Redis Hash 扫描的异步数据同步方案&#…...
SPL 量化 序言
序言 量化交易是通过数学模型、统计学方法和计算机技术,将市场行为转化为可执行的交易策略的自动化投资方式。其核心是通过大数据分析、机器学习和金融工程等技术,从历史数据中挖掘市场规律,预测价格趋势并生成交易信号。 量化交易的实现通…...
【LLM Prompt】CoT vs.ToT
CoT(Chain of Thought) Definition: CoT refers to the method of prompting a language model to generate responses in a step-by-step manner, explicitly showing the reasoning process leading to the final answer.定义: CoT 是一种提示语言模型…...
uniapp h5接入地图选点组件
uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...
【Rust 精进之路之第13篇-生命周期·进阶】省略规则与静态生命周期 (`‘static`)
系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:让编译器“读懂”你的意图——省略的艺术 在上一篇【生命周期入门】中,我们理解了生命周期的必要性——它是 Rust 编译器用来确保引用有效性、防止悬垂引用的关键机制。我…...
OSI模型和传输过程
OSI模型概述 OSI(Open Systems Interconnection)模型是由国际标准化组织(ISO)提出的一个概念性框架,用于标准化网络通信功能。它将网络通信分为七层,每一层负责特定的功能,并通过接口与相邻层交…...
MySQL-CASE WHEN条件语句
介绍 MySQL 中的一种流程控制语法结构,用于在 SQL 查询中实现条件逻辑。它允许你根据一个或多个条件的真假来返回不同的值。可以根据某些条件对数据进行分类或者转换。 使用方式 简单 CASE 表达式 CASE input_expressionWHEN when_expression THEN result_expre…...
【随缘更新,免积分下载】Selenium chromedriver驱动下载(最新版135.0.7049.42)
目录 一、chromedriver概述 二、chromedriver使用方式 三、chromedriver新版本下载🔥🔥🔥 四、Selenium与Chrome参数设置🔥🔥 五、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥…...
jenkins批量复制Job项目的shell脚本实现
背景 现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的apilinux shell 进行实现。 测试目录的实际文件夹名称是 test。 脚本运行效果如下: [qdevsom5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh 创建文件夹 test2 获取源…...
iOS Google登录
iOS Google登录 SDK下载地址在 Firebase 有下载,要下载整个SDK文件,然后拿其中的Google 登录SDK来使用 Firebase 官方文档 github 下载链接...
嵌入式工程师( C / C++ )笔试面试题汇总
注:本文为 “嵌入式工程师笔试面试题” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 嵌入式必会 C 语言笔试题汇总 Z 沉浮 嵌入式之旅 2021 年 01 月 19 日 00:00 用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒&a…...
重构便携钢琴专业边界丨特伦斯便携钢琴V30Pro定义新一代便携电钢琴
在便携电钢琴领域,特伦斯推出的V30Pro折叠钢琴以"技术革新场景适配"的双重升级引发关注。这款产品不仅延续了品牌标志性的折叠结构,更通过声学系统重构与智能交互优化,重新定义了便携乐器的专业边界。 ▶ 核心特点:技术…...
DiffuRec: A Diffusion Model for Sequential Recommendation
DiffuRec: A Diffusion Model for Sequential Recommendation Background 序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣…...
多模态大语言模型arxiv论文略读(三十三)
Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文标题:Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文作者:Zhenxing Niu, Haodong Ren, Xinbo Gao, Gang Hua, Rong Jin ➡️ 研究机构: Xidian Univer…...
IntelliJ IDEA download JDK
IntelliJ IDEA download JDK 自动下载各个版本JDK,步骤 File - Project Structure (快捷键 Ctrl Shift Alt S) 如果下载失败,换个下载站点吧。一般选择Oracle版本,因为java被Oracle收购了 好了。 花里胡哨&#…...
计算机网络——常见的网络攻击手段
什么是XSS攻击,如何避免? XSS 攻击,全称跨站脚本攻击(Cross-Site Scripting),这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,因此有人将跨站脚本攻击缩写为XSS。它指的是恶意攻击者往Web页面…...
Android动态化技术优化
Android动态化技术优化 一、WebView优化基础 1.1 WebView性能瓶颈 初始化耗时内存占用高页面加载慢白屏问题1.2 WebView基本配置 class OptimizedWebView : WebView {init {// 开启硬件加速setLayerType(LAYER_TYPE_HARDWARE, null...
面向对象设计中的类的分类:实体类、控制类和边界类
目录 前言1. 实体类(Entity Class)1.1 定义和作用1.2 实体类的特点1.3 实体类的示例 2. 控制类(Control Class)2.1 定义和作用2.2 控制类的特点2.3 控制类的示例 3. 边界类(Boundary Class)3.1 定义和作用3…...
鸿蒙ArkUI实战之TextArea组件、RichEditor组件、RichText组件、Search组件的使用
本文接上篇继续更新ArkUI中组件的使用,本文介绍的组件有TextArea组件、RichEditor组件、RichText组件、Search组件,这几个组件的使用对应特定场景,使用时更加需要注意根据需求去使用 TextArea组件 官方文档: TextArea-文本与输…...
初创企业机器学习训练:云服务器配置对效率、成本与可扩展性的影响
在当今的初创企业中,机器学习模型训练已成为驱动创新和智能产品的核心环节。然而,深度学习模型的训练通常需要大量的计算资源,如何高效利用云服务器的基础配置成为初创团队关注的重点。云服务器的基础配置通常包括 vCPU(虚拟CPU&a…...
【“星瑞” O6 评测】—NPU 部署 face parser 模型
前言 瑞莎星睿 O6 (Radxa Orion O6) 拥有高达 28.8TOPs NPU (Neural Processing Unit) 算力,支持 INT4 / INT8 / INT16 / FP16 / BF16 和 TF32 类型的加速。这里通过通过官方的工具链进行FaceParsingBiSeNet的部署 1. FaceParsingBiSeNet onnx 推理 首先从百度网盘…...
56、如何快速让⼀个盒⼦⽔平垂直居中
在网页开发中,有多种方式能让一个盒子实现水平垂直居中。下面为你介绍几种常见且快速的方法。 1. 使用 Flexbox 布局 Flexbox 是一种非常便捷的布局模型,能够轻松实现元素的水平和垂直居中。 html <!DOCTYPE html> <html lang"en"&…...
互联网大厂Java面试:Spring Cloud与微服务的奇妙之旅
互联网大厂Java面试:Spring Cloud与微服务的奇妙之旅 在一家知名的互联网公司,一位严肃且专业的面试官正准备对求职者进行技术考察。而这次的应聘者,是自称拥有丰富经验但实际上却是个搞笑的水货程序员——马飞机。接下来,我们将…...
