打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
测试环境搭建——Spring Boot 部署
相比传统的 Java Web ,Spring Boot 极大简化了配置,并且遵守约定优于配置的原则即使0配置也能正常运行,是目前最流行的 Java Web 开发框架。
今天的测试环境小萌新篇给大家介绍关于 Spring Boot 的部署。
运行方式
Spring Boot应用程序有两种运行方式:
以jar包方式运行
以war包方式运行
两种方式应用场景不一样,各有优缺点
jar包运行
通过maven插件spring-boot-maven-plugin,在进行打包时,会动态生成jar的启动类org.springframework.boot.loader.JarLauncher,借助该类对Spring Boot 应用程序进行启动。
优点:
本地无需搭建web容器,方便开发和调试;
因为自带web容器,可以避免由于web容器的差异造成不同环境结果不一致问题;
一个jar包就是全部,方便应用扩展;
借助容器化,可以进行大规模的部署。
缺点:
应用过于独立,难以统一管理;
数据源无法通过界面进行管理;
应用体积过大;
修改web容器相关配置较为困难,需要借助代码实现。
war包运行
以war包方式运行,通过maven插件spring-boot-maven-plugin进行相关配置后,最终生成一个可运行在tomcat,weblogic等java web容器中的war包。
优点:
可以借助web容器管理界面对应用进行管理;
可以管理JNDI数据源;
web容器配置较为灵活,配置和程序分离;
应用体积较小,甚至可以借助web容器的包管理功能(比如weblogic Library)进一步减小应用大小。
缺点:
本地需要搭建web容器,对本地环境要求更高点,学习成本也响应更高;
调试较为困难,需要借助web容器;
无法兼容所有web容器(比如spring boot2.x无法运行在weblogic 11g上);
部署较为困难(比如和weblogic有较多的类冲突)。
在实际的项目中,并没有哪一种方式是最好的,根据不同的需求制定不同的部署方案,比如看中管理功能,要求数据源和tomcat相关配置必须由管理员进行管理,那么选择war包方式;如果希望借助容器化进行大规模部署,那么jar方式更适合。
这里我们介绍 jar 方式。
基本准备
Web 服务器
对于Spring Boot,Spring官方的建议是将Spring Boot应用打包成一个fat jar,通过java命令来启动运行。这个fat jar会把Tomcat内置进来,所以部署时也不需要单独配置Tomcat。
所以我们这里只安装配置向代理服务器——Nginx。
安装按照官方推荐的方式:
# 安装EPEL仓库
yum install epel-release
yum update
# 编译与安装
yum install nginx
# 查看安装版本:
nginx –v
# 启动服务
systemctl start nginx
数据库
我们使用最主流的数据库 MySQL。
安装与配置:
# 下载 MySQL 的 repo 源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# 安装 mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 安装 MySQL  Server
yum install -y mysql-community-server
# 启动服务
systemctl restart mysql
# 设置密码
mysql>use mysql;
mysql>update user set password=password('123456') where user='root’;
mysql>exit;
# 重启服务
systemctl restart mysql
# 设置访问权限
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY “123456";
Spring Boot 部署
打包
对于Spring Boot 的打包可以通过编译或者直接使用Maven命令的方式。
IDEA打包:
Maven 命令:
# 清理已存在的编译结果
mvn clean
# 打包
mvn package
打包完成后将在targe目录生成对象的jar包。
注:
Jar的相关依赖信息、包名称等等在pom文件中进行设置。
部署
将打包后的文件放置在部署服务器的指定目录下,并设置指定权限,
在该目录下编辑启动脚本start.sh:
#!/bin/sh
#指定JDK目录&AppName
export JAVA_HOME=/usr/java/jdk1.8.0_191
APP_NAME=demo-0.0.1.jar
echo $APP_NAME
#nohup命令后台启动jar包并写入日志
nohup  java -jar $APP_NAME >>logs/start.log 2>>logs/startError.log &
#sleep等待15秒后,判断包含AppName的线程是否存在
sleep 15
if test $(pgrep -f $APP_NAME|wc -l) -eq 0
then
echo "Start Failed"
else
echo "Start Successed"
fi
停止脚本stop.sh:
#!/bin/sh
#指定AppName
APP_NAME=demo-0.0.1.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
echo 'Stop Successed'
给两个脚本赋予可执行权限后,即可使用脚本来启动或者停止 Spring Boot 服务。
配置 Nginx
在 /etc/nginx/conf.d 新建APP对应的配置文件demo.conf:
#反向代理配置内容
server {
listen       80;        #监听80端口
server_name  10.0.0.16; #绑定的域名
access_log /var/log/nginx/nginx.log;
error_log /var/log/nginx/nginx.error;
location /api {            #转发或处理
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.0.16:8081/;
}
error_page   500 502 503 504  /50x.html;#错误页
location = /50x.html {
root   /usr/share/nginx/html;
}
}
注:
设置完成后重启或者重新加载Nginx
重新加载 Nginx:nginx -s reload
重启 Nginx:systemctl restart nginx
如此几步,简单完成Spring Boot 的部署。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Spring Boot 发布 jar 包转为 war 包秘籍。
Spring Boot教程
一文带你看懂Springboot核心功能及优缺点
Spring Boot面试题
spring boot解决第三方jar包依赖的问题
spring boot 项目部署到服务器 两种方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服