[SpringBoot/JavaEE] SpringBoot应用程序的启动与停用x4种方式

SpringBoot版本: 2.1.6.RELEASE

1 启动

方式1 – IntelliJ IDEA - Windows

右键启动类SpringBootSampleApplication.java > Run “SpringBootSampleApplication#main()”

方式2 – Maven – Windows

E:
cd E:\Projects\SpringBootSample
mvn clean
mvn spring-boot:run (非后台运行)
    或 mvn spring-boot:run > ./Applog.log & (后台运行)

方式3 – Maven/JAR – AnyPlatform [推荐]

思路:mvn install编译生成出项目的jar,然后运行jar

方式4 - Maven/Linux Shell - Linux [未亲测]

请参见: 正确、安全地停止SpringBoot应用服务: 部署为Unix/Linux Service -博客园

2 停用

方式1 – 命令行 – AnyPlatform

方式2 – IDEA – Windows

方式3 – actuator – AnyPlatform [推荐]

利用端点管理器actuator,实现远程管理。
Actuator内容详见本文:端点管理actuator

方式4 - Maven/Linux Shell - Linux [未亲测]

请参见: 正确、安全地停止SpringBoot应用服务: 部署为Unix/Linux Service -博客园

3 延申:nohup 命令

  • nohup 英文全称 no hang up(不挂起),用于在【系统后台】不挂断地运行命令,【退出终端】不会影响程序的运行。
    nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到【当前目录】下。如果【当前目录】的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中

Z FAQ

Q: mvn spring-boot:run "-Dspring-boot.run.arguments=--spring.profiles.active=xxx" 与 java -jar xxx.jar 的本质区别?(必读)

  • 两者本质区别在于:mvn spring-boot:run 从"【源码/classpath】"跑,java -jar 从"【打包好的可执行 Jar】"跑。前者是【开发态】,后者是【部署态】。
维度 mvn spring-boot:run java -jar xxx.jar
前提 在项目根目录、无需先打包 必须先 package 出可执行 jar(spring-boot:repackage)
运行对象 target/classes + 依赖 classpath,直接编译后运行 已重打包的 fat jar(内嵌依赖、内嵌容器)
配置加载 优先读 src/main/resources,可实时改资源 读 jar 内打包好的 BOOT-INF/classes
典型场景 本地开发、调试、热重载 测试/生产部署,产物可拷贝到任意机器
是否 fork JVM 默认另起一个 JVM 运行应用(可 -Dspring-boot.run.fork=false 关) 当前 java 进程即应用进程
外部依赖 依赖本机 Maven 仓库解析 无需 Maven,只要 JRE/JDK
停止方式 Ctrl+C 停 fork 出的进程 终止 java 进程
  • 关于问题中涉及的 profile 参数:
  • mvn 方式:-Dspring-boot.run.arguments=--spring.profiles.active=xxx,由 spring-boot-maven-plugin 把 --spring.profiles.active=xxx 作为【启动参数】传给 fork 的应用进程。
  • java -jar 方式:直接 java -jar xxx.jar --spring.profiles.active=-xxx(或 -Dspring.profiles.active=xxx),效果等价——最终都是交给 SpringApplication 解析命令行参数。

两者最终都会命中 application-{profile}.yml 等 Profile 配置,区别只在"参数从哪一层注入、跑的是不是打包产物"。

选型建议: 改代码、调配置就 mvn spring-boot:run(配合 devtools 可热更新);要交付、部署、上服务器就跑 java -jar。

X 推荐文献

posted @ 2020-08-20 14:07  千千寰宇  阅读(1298)  评论(0)    收藏  举报