Spring Boot + Vue 前后端分离项目的部署
基于 Spring Boot + Vue 的前后端分离项目的部署方式主要有如下两种:
- 前后端一起部署:将 Vue 项目打包后丢到 Spring Boot 项目的资源目录下,然后在服务器上部署 Spring Boot 项目即可
一、部署 Spring Boot 项目
1、在服务器上部署数据库
进入到宝塔后台界面中,创建一个数据库(与项目中使用的数据名一致),同时访问权限设为所有人: 在本地上可以使用 Navicat 或 SQLyog 将数据库转储为 sql 文件,这里以 SQLyog 为例: 导出选项选择结构和数据,完成后便可将我们本地数据库的所有记录导出为一个 sql 文件
然后,进入到宝塔数据库面板中,点击刚刚创建的数据库的右侧管理按钮,进入到 phpMyAdmin 界面 在此导入运行我们刚刚在本地导出的 sql 文件即可 ps:宝塔与阿里云需开放 888 端口(phpMyAdmin 默认端口)
2、连接阿里云数据库
在 Spring Boot 项目的配置文件中写多一个线上环境,再将环境激活为线上环境,如下所示:
spring: profiles: active: online --- spring: profiles: local datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver server: port: 8081 --- spring: profiles: online datasource: username: 云数据库用户名 password: 云数据库密码 url: jdbc:mysql://服务器ip:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver server: port: 8081
其中 online 环境下的用户名和密码为步骤 1 中服务器上创建的数据库的用户名和密码 当我们将数据库环境修改为服务器上的参数时,若直接通过 maven 打包可能会报错,此时可采用如下命令打包:
mvn clean package -Dmaven.test.skip=true
该命令会跳过打包前的测试,可以确保打包成功
3、项目上传并运行
把 Spring Boot 项目的 jar 包上传至服务器任意目录,然后在该目录下打开终端 linux 上后台运行 jar 的命令如下(后面跟上 Spring Boot 项目的 jar 包名称):
nohup java -jar springbootJar 包名.jar >log.txt &
ps:要注意确保端口可以访问,即阿里云与宝塔的端口放行
在终端中输入如下命令可以看到我们运行的项目进程:
ps -ef | grep java
如果需要停止运行,则采用如下命令根据端口杀死进程,其中的端口号为 Spring Boot 项目的运行端口号:
sudo fuser -k -n tcp 8080
二、部署 Vue 项目
然后输入如下命令打包项目:
npm run build
此时会看到生成的 dist 文件夹 修改 dist 为项目名称,然后上传到服务器上的 Nginx 下的 html 目录下