Spring Boot 项目启动命令解析

发布于:2025-04-19 ⋅ 阅读:(108) ⋅ 点赞:(0)

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
  • 用途
    1. 开启远程调试(IDE 连接端口 5005)。
    2. OOM 时生成堆转储文件到 /tmp/
    3. --trace 记录详细请求和数据库操作日志。

四、参数优先级(从高到低)
  1. 命令行参数--key=value
  2. 环境变量(如 SERVER_PORT=8080
  3. 外置配置文件--spring.config.location 指定)
  4. 内置配置文件application-{profile}.propertiesapplication.properties
  5. 框架默认值

五、总结
  • 基础命令java -jar your-project.jar,通过参数动态配置。
  • 高频场景
    • 切换环境:--spring.profiles.active=xxx
    • 修改端口:--server.port=xxx
    • 内存优化:-Xmx4g -Xms4g
    • 外部配置:--spring.config.location=file:/config/
  • 最佳实践
    • 生产环境优先用 外部配置环境变量,避免硬编码。
    • 开发时用 --debug--trace 辅助排查问题。

网站公告

今日签到

点亮在社区的每一天
去签到