Spring Boot 项目启动命令大全:参数详解与高阶用法

Spring Boot 项目启动命令大全:参数详解与高阶用法


一、基础启动命令
  1. 默认启动命令

    java -jar xxx.jar
    
    • 适用场景:开发环境快速启动,使用默认配置(端口 8080,内存由 JVM 自动分配)。
  2. 指定 JVM 内存参数

    java -Xms256m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -jar xxx.jar
    
    • 参数解析
      • -Xms256m:初始堆内存(推荐与 -Xmx 设置相同,避免内存震荡)
      • -Xmx512m:最大堆内存
      • -XX:MetaspaceSize=128m:元空间初始大小(JDK8+ 替代 PermGen)
      • -XX:MaxMetaspaceSize=256m:元空间最大大小
  3. 指定服务端口

    java -jar xxx.jar --server.port=8085
    
    • 注意事项
      • 若端口被占用会抛出 BindException
      • 支持范围:1~65535(避免使用 0-1023 的保留端口)
  4. 指定配置文件环境

    java -jar xxx.jar --spring.profiles.active=pro
    
    • 配置优先级:命令行参数 > application-{profile}.yml > application.yml
    • 多环境激活--spring.profiles.active=pro,mysql(逗号分隔)
  5. 指定运行编码

    java -jar -Dfile.encoding="UTF-8" xxx.jar
    
    • 常见问题:日志乱码、文件读取编码不一致时需显式指定

二、高阶启动参数
  1. 远程调试模式

    java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar xxx.jar
    
    • 用途:通过 IDE(如 IntelliJ)远程调试生产环境应用
    • 参数说明
      • suspend=y:阻塞等待调试器连接(生产环境慎用)
      • address=5005:调试端口
  2. 日志配置

    java -jar xxx.jar --logging.file.path=/var/log/myapp --logging.level.root=WARN
    
    • 关键参数
      • logging.config:指定自定义日志配置文件(如 Logback)
      • logging.level.com.example=DEBUG:包级别日志控制
  3. GC 调优参数

    java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:/var/log/gc.log -jar xxx.jar
    
    • 推荐策略
      • G1 GC:-XX:+UseG1GC(适用于大内存应用)
      • ZGC:-XX:+UseZGC(JDK11+,低延迟场景)
  4. 禁用特定功能

    java -jar xxx.jar --spring.main.web-application-type=none --spring.devtools.restart.enabled=false
    
    • 常用场景
      • 非 Web 应用:禁用 Tomcat
      • 生产环境:关闭 DevTools 热部署

三、生产环境实战命令

综合示例

java \
-Xms2g -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-Dfile.encoding=UTF-8 \
-Dspring.profiles.active=pro \
--server.port=8080 \
--logging.file.path=/data/logs \
--spring.redis.host=10.0.0.1 \
-jar myapp.jar

参数说明

  • 堆内存固定为 2GB,避免动态扩展
  • 使用 G1 垃圾回收器,目标暂停时间 200ms
  • 显式指定 UTF-8 编码
  • 激活生产环境配置
  • 自定义日志存储路径
  • 覆盖 Redis 连接配置

四、注意事项
  1. 参数顺序问题

    • JVM 参数(-X-D)必须放在 -jar 之前
    • Spring 参数(--)放在最后
  2. 配置优先级

    命令行参数 > System 属性 > 环境变量 > application-{profile}.yml > application.yml
    
  3. 安全建议

    • 生产环境禁用 Actuator 敏感端点:
      --management.endpoints.web.exposure.exclude=env,health
      
    • 禁用命令行窃听:
      --spring.main.allow-bean-definition-overriding=false
      

五、扩展知识
  1. Docker 环境启动

    docker run -d -p 8080:8080 \
    -e "JAVA_OPTS=-Xmx512m" \
    -v /app/config:/config \
    myimage:latest \
    java -jar /app/myapp.jar --spring.config.location=/config/
    
  2. 性能监控集成

    java -jar xxx.jar \
    --management.endpoint.health.show-details=always \
    --management.metrics.export.prometheus.enabled=true
    

通过灵活组合这些参数,开发者可以精准控制 Spring Boot 应用的运行时行为。建议根据实际场景进行压测验证,并配合 APM 工具(如 SkyWalking、Prometheus)持续优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23809.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入剖析:基于红黑树实现自定义 map 和 set 容器

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 在 C 标准模板库(STL)的大家庭里,map和set可是超级重要的关联容器成员呢😎&#x…

前端面试题之HTML篇

1.src和href的区别 src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。 src可用于img、input、style、script、iframe---同步加载执行 href可用于link、a---异步 1.用途不同 src 用于引入外部资源,通常是图像、视频、JavaScript 文件等&am…

硬件工程师入门教程

1.欧姆定律 测电压并联使用万用表测电流串联使用万用表,红入黑出 2.电阻的阻值识别 直插电阻 贴片电阻 3.电阻的功率 4.电阻的限流作用 限流电阻阻值的计算 单位换算关系 5.电阻的分流功能 6.电阻的分压功能 7.电容 电容简单来说是两块不连通的导体加上中间的绝…

01背包之---应用篇

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、01背包之---背包是否能被装满?例题1.分析题意例题2.分析题意 二、01背包之---装满背包有多少种组合?例题1.分析题意 三、01背包之---容量为N的…

DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑

DeepSeek作为一款前沿的人工智能大模型,凭借其强大的多模态理解、知识推理和内容生成能力,正在重构文旅产业的发展逻辑,推动行业从传统的经验驱动向数据驱动、从人力密集型向智能协同型转变。 一、智能服务重构:打造全域感知的智…

uniapp修改picker-view样式

解决问题&#xff1a; 1.选中文案样式&#xff0c;比如字体颜色 2.修改分割线颜色 3.多列时&#xff0c;修改两边间距让其平分 展示效果&#xff1a; 代码如下 <template><u-popup :show"showPicker" :safeAreaInsetBottom"false" close&quo…

开源嵌入式实时操作系统uC/OS-II介绍

一、uC/OS-II的诞生&#xff1a;从开源实验到行业标杆 背景与起源 uC/OS-II&#xff08;Micro-Controller Operating System Version II&#xff09;诞生于1992年&#xff0c;由嵌入式系统先驱Jean J. Labrosse开发。其前身uC/OS&#xff08;1991年&#xff09;最初作为教学工…

8.spring对logback的支持

文章目录 一、入口二、源码解析LoggingApplicationListener 三、其它支持四、总结 本节以logback为背景介绍的 一、入口 gav: org.springframework.boot:spring-boot:3.3.4 spring.factories文件中有如下两个配置 org.springframework.boot.logging.LoggingSystemFactory\ …

OpenHarmony分布式数据管理子系统

OpenHarmony分布式数据管理子系统 简介 目录 组件说明 分布式数据对象数据共享分布式数据服务Key-Value数据库首选项关系型数据库标准数据化通路 相关仓 简介 子系统介绍 分布式数据管理子系统支持单设备的各种结构化数据的持久化&#xff0c;以及跨设备之间数据的同步、…

智慧后勤的消防管理:豪越科技为安全护航

智慧后勤消防管理难题大揭秘&#xff01; 在智慧后勤发展得如火如荼的当下&#xff0c;消防管理却暗藏诸多难题。传统模式下&#xff0c;消防设施分布得那叫一个散&#xff0c;就像一盘散沙&#xff0c;管理起来超费劲。人工巡检不仅效率低&#xff0c;还容易遗漏&#xff0c;不…

python轻量级框架-flask

flask简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用&#xff0c;适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架&#xff0c;是因为它与一些大型 We…

政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 安装 Gradio&#xff08;UI&#xff09; 运…

在 Mac mini M2 上本地部署 DeepSeek-R1:14B:使用 Ollama 和 Chatbox 的完整指南

随着人工智能技术的飞速发展&#xff0c;本地部署大型语言模型&#xff08;LLM&#xff09;已成为许多技术爱好者的热门选择。本地部署不仅能够保护隐私&#xff0c;还能提供更灵活的使用体验。本文将详细介绍如何在 Mac mini M2&#xff08;24GB 内存&#xff09;上部署 DeepS…

【Godot4.3】基于绘图函数的矢量蒙版效果与UV换算

概述 在设计圆角容器时突发奇想&#xff1a; 将圆角矩形的每个顶点坐标除以对应圆角矩形所在Rect2的size&#xff0c;就得到了顶点对应的UV坐标。然后使用draw_colored_polygon&#xff0c;便可以做到用图片填充圆角矩形的效果。而且这种计算的效果就是图片随着其填充的图像缩…

51单片机-AT24CXX存储器工作原理

1、AT24CXX存储器工作原理 1.1、特点&#xff1a; 与400KHz&#xff0c;I2C总线兼容1.8到6.0伏工作电压范围低功耗CMOS技术写保护功能当WP为高电平时进入写保护状态页写缓冲器自定时擦写周期100万次编程/擦除周期可保存数据100年8脚DIP SOIC或TSSOP封装温度范围商业级和工业级…

Linux网络 网络层

IP 协议 协议头格式 4 位版本号(version): 指定 IP 协议的版本, 对于 IPv4 来说, 就是 4. 4 位头部长度(header length): IP 头部的长度是多少个 32bit, 也就是 4 字节&#xff0c;4bit 表示最大的数字是 15, 因此 IP 头部最大长度是 60 字节. 8 位服务类型(Type Of Service):…

Unity百游修炼(1)——FootBall详细制作全流程

一、引言 游玩测试&#xff1a; Football 游玩测试 1.项目背景与动机 背景&#xff1a;在学习 Unity 的过程中&#xff0c;希望通过实际项目来巩固所学知识&#xff0c;同时出于对休闲小游戏的喜爱&#xff0c;决定开发一款简单有趣的小游戏加深自己的所学知识点。 动机&#…

C语言(13)------------>do-while循环

1.do-while循环的语法 我们知道C语言有三大结构&#xff0c;顺序、选择、循环。我们可以使用while循环、for循环、do-while循环实现循环结构。之前的博客中提及到了前两者的技术实现。可以参考&#xff1a; C语言&#xff08;11&#xff09;-------------&#xff1e;while循…

【1】VS Code 新建上位机项目---C#基础语法

VS Code 新建上位机项目---C#基础语法 1 基本概念1.1 准备工具1.2 新建项目2 C#编程基础2.1 命名空间和类2.2 数据类型2.3 控制台输入输出2.3.1 输入输出: write 与 read2.3.2 格式化 : string.Foramt() 与 $2.3.3 赋值与运算2.4 类型转换2.4.1 数值类型之间的转换:(int)2.4…

SQL:DQL数据查询语言以及系统函数(oracle)

SQL Structured Query Language&#xff0c;结构化查询语言, 是一种用于管理和操作关系数据库的标准编程语言。 sql的分类 DQL&#xff08;Data Query Language&#xff09;&#xff1a;数据查询语言 DDL&#xff08;Data Definition Language&#xff09;&#xff1a;数据…