首页 > 编程笔记 > Java笔记 阅读:2

Spring Boot项目的运行和部署(附带实例)

内嵌容器技术的发展为 Spring Boot 部署打下了坚实的基础,内嵌容器在开发调试、项目部署等阶段发挥着巨大的作用,也带来了极大的便利性。以往我们开发部署 Web 项目时非常烦琐,而使用 Spring Boot 开发部署一个命令就能解决,不需要再关注容器的环境问题,专心写业务代码即可。

Spring Boot 内嵌的内置 Tomcat、Jetty 等容器对项目部署带来了很多的改变,在服务器上仅仅需要几条命令即可部署项目。一般开发环境直接使用 java -jar 命令启动,正式环境需要将程序部署成服务。

下面开始演示 Spring Boot 项目是如何运行、部署的。

Spring Boot项目启动运行

简单来说就是直接启动 JAR 包。启动 JAR 包的命令如下:
java -jar spring-boot-package-1.0.0.jar
这种方式是前台运行的,只要将控制台关闭,服务就会停止。在实际生产中,我们肯定不会在前台运行,一般使用后台运行的方式来启动。
nohup java -jar spring-boot-package-1.0.0.jar &
在上面的示例中,使用 nohup java -jar xxx.jar & 命令让程序以后台运行的方式执行,日志会被重定向到 nohup.out 文件中。也可以用“>filename 2>&1”来更改默认的重定向文件名,命令如下:
nohup java -jar spring-boot-package-1.0.0.jar >spring.log 2>&1 &
在上面的示例中,使用“>spring.log 2>&1”参数将系统的运行日志保存到 spring.log 中。以上就是简单的启动 JAR 包的方式,使用简单。

Spring Boot 支持在启动时添加定制,比如设置应用的堆内存、垃圾回收机制、日志路径等。

1) 设置jvm参数

通过设置 jvm 参数优化程序的性能:
java -Xms10m -Xmx80m -jar spring-boot-package-1.0.0.jar

2) 选择运行环境

前面介绍了如何配置多运行环境,在启动项目时,选择对应的启动环境即可:
java -jar spring-boot-package-1.0.0.jar --spring.profiles.active=dev
一般项目打包时指定默认的运行环境,在启动运行时也可以再次设置运行环境。

Spring Boot生产环境部署

前面介绍的运行方式比较传统和简单,实际生产环境中考虑到后期运维,建议读者使用服务的方式来部署。

下面通过示例演示 Spring Boot 项目配置成系统服务。
1) 将之前的 JAR 包 spring-boot-package-1.0.0.jar 复制到 /usr/local/ 目录下。

2) 进入服务文件目录,命令如下:
cd /etc/systemd/system/

3) 使用 vim springbootpackage.service 创建服务文件,示例代码如下:
[Unit]
Description=springbootpackage
After=syslog.target

[Service]
ExecStart=/usr/java/jdk1.8.0_221-amd64/bin/java -Xmx4096m -Xms4096m -Xmn1536m -jar /usr/local/spring-boot-package-1.0.0.jar

[Install]
WantedBy=multi-user.target
在上面的示例中,主要是定义服务的名字,以及启动的命令和参数,使用时只需要修改 Description 和 ExecStart 即可。

4) 启动服务
// 启动服务
systemctl start springbootpackage
// 停止服务
systemctl stop springbootpackage
// 查看服务状态
systemctl status springbootpackage

// 查看服务日志
journalctl -u springbootpackage
在上面的示例中,通过 systemctl start|stop|status springbootpackage 命令启动、停止创建的 springbootpackage 服务。

如下图所示,使用 systemctl status springbootpackage 命令查看服务状态,同时还可以通过 journalctl -u springbootpackage 命令查看服务完整日志。


图 1 查看服务状态

此外,还需要使用如下命令设置服务开机启动:
// 开机启动
systemctl enable springbootpackage
以上是打包成独立的 JAR 包部署到服务器,如果是部署到 Tomcat 中,就按照 Tomcat 的相关命令来重新启动。

相关文章