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

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.kler.cn/a/560275.html

相关文章:

  • (六)趣学设计模式 之 代理模式!
  • Hyperledger Fabric 入门笔记(十九)Fabric V2.5 杂项 - 在开发模式下运行链码
  • OpenCV计算摄影学Computational Photography
  • 【嵌入式Linux应用开发基础】网络编程(1):TCP/IP协议栈
  • 【备赛】点亮LED
  • 【信息系统项目管理师-案例真题】2010下半年案例分析答案和详解
  • UE5实现角色二段跳
  • DIP的实际举例
  • 垂类大模型微调(一):认识LLaMA-Factory
  • clickhouse--本地表和分布式表,副本机制,分片集群
  • DeepSeek-R1蒸馏模型与其他模型的区别
  • 【Linux知识】Linux上从源码编译到软件安装全过程详细说明
  • 冒泡排序:简单又易于实现的排序算法
  • 智能生成ER图工具。使用 SQL 生成 ER 图:让数据库设计更高效
  • C/C++高性能Web开发框架全解析:2025技术选型指南
  • 快手弹幕 websocket 分析
  • 用Deepseek直接在word中完成论文的润色(中-中,中-英, 英-中)
  • VantUI官网更新2025,移动端前端开发
  • Python在实际工作中的运用-CSV转XLSX的几个方法
  • 【多模态】46、通俗理解 RLHF/PPO/DPO/GRPO