SpringBoot笔记(5)-SpringBoot项目部署

SpringBoot部署

部署

SpringBoot的部署非常简单,只需要将项目打成jar包之后运行即可。由于SpringBoot中内置了Tomcat,因此也不需要像JavaWeb项目一样依赖于Tomcat。

不过使用Maven打包之前需要配置下面的打包插件:

1
2
3
4
5
6
7
8
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

之后使用Maven的clean以及package将项目打成jar包,之后使用java -jar运行对应的jar包即可。启动之后还需要配合nginx等相关软件来实现反向代理,将服务接口向外暴露。

启停脚本

在实际部署过程中,我们通常会使用脚本来完成服务的启动和停止,下面是通用的启停脚本。

启动脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

#启动后端springboot
#配置相关信息
cd /root/java-course
APP_NAME=java-course.jar

#后台启动jar包并将输出写入日志
nohup java -jar $APP_NAME >> logs/start.log 2>>logs/startError.log &

#启动nginx
/usr/local/nginx/sbin/nginx

# sleep 10s后判断包含AppName的线程是否存在
sleep 10

if test $(pgrep -f $APP_NAME|wc -l) -eq 0
then
echo "Start Failed"
else
echo "Start Successed"
fi

停止脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

#关闭后端
#指定应用名称
APP_NAME=java-course.jar

#找到包含AppName的进程
PROCESS=`ps -ef|grep $APP_NAME|grep -v grep |awk '{ print $2}'`

#循环停用进程直到成功
while :
do
kill -9 $PROCESS > /dev/null 2>&1
if [ $? -ne 0 ];then
break
else
continue
fi
done

#关闭nginx
/usr/local/nginx/sbin/nginx -s stop

echo "Stop Successed"

参考文章

  1. Spring Boot应用 打包与部署指南 - 腾讯云开发者社区-腾讯云 (tencent.com)

SpringBoot笔记(5)-SpringBoot项目部署
http://example.com/2022/11/17/SpringBoot笔记-5-SpringBoot项目部署/
作者
EverNorif
发布于
2022年11月17日
许可协议