本文介绍Spring Boot、Vue 、Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库。按照本文进行项目部署,不迷路。

1. 前言

典型的软件开发,经过“需求分析”,“概要设计”,“详细设计”,“开发及单元测试”,“前后端联调”,“生产环境上线”。到了发布到生产环节的环节,紧张的神经,终于可以松一口气了!!!

且慢,部署也是很重要的一环,稍有不慎就会“前功尽弃”。

开发中,每个人的开发环境、工具可能都不同。目前大部分人用Windows(Win 10)开发,部分用Mac系统开发,还有极少数用Linux系统开发。但,为了运行的稳定,开发的系统大部分都部署在Linux平台。本文采用Centos 7部署Spring Boot项目,并介绍前后端项目的打包和部署。

2. 部署过程说明

1)开发环境说明

本着一切为了“开发效率”,在项目开发的时候:

后端采用了IntelliJ IDEA作为Spring Boot的开发工具(其实用Eclipse也是Ok的),用了典型“controller、service、dao三层架构”;

前端采用Vs Code作为Vue及Vue Element的开发工具,用webpack进行项目打包,“地球人都知道,这里就不多啰嗦了”;

用Git作为分布式版本控制系统;

Mysql数据;

用mybatis作为持久层框架。

2)Centos 7安装Jdk,MariaDB

Centos 7操作系统的安装,略!网上有大量的教程,不再赘述。

  • 安装Jdk环境

    最简单的方式,莫过于用yum安装,一个命令搞定(千万别告诉我你还在用32位系统):

    yum install java-11-openjdk.x86_64

  • 安装MariaDB

    [注意] 一般情况下Linux安装的时候会包含Mysql,这将导致MariaDb安装不成功。

    首先运行如下命令检查是否有Mysql:

    rpm -qa | grep mariadb

    如果系统里面预装了Mysql,则先卸载:

    yum remove mysql mysql-server mysql-libs compat-mysql51

    然后添加源(都2020年了,不会用vi,拿什么来拯救你):

    vi /etc/yum.repos.d/MariaDB.repo

    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.2.4/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

    安装MariaDb:

    yum -y install MariaDB-server MariaDB-client

    启动MariaDb服务:

    systemctl start mariadb #启动服务

    加入开机启动:

    systemctl enable mariadb #设置开机启动

3)开放防火墙端口

默认情况下,防火墙拦截是不能访问的,此处我们开放80、22端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --zone=public --add-port=22/tcp --permanent

[注意] 需要重启防火墙,命令是:

firewall-cmd --reload

查看是否添加成功,这里我就不截图演示了:

firewall-cmd --zone=public --list-ports

4) 前后端打包及部署

忙碌了大半天,准备工作终于做好了。激动人心的时刻终于要来了!!!

  • 前端项目打包

    前端项目采用webpack进行管理,编译非常简单,也是一个命令搞定(so easy!!!):

    npm run build

    运行该命令后,会在项目的根文件夹下生产一个dist目录。

  • 后端项目打包

    将前端项目拷贝到springboot项目的resources的static目录下,然后运行mvn clean package构建项目,即可生成一个项目的jar文件,此处文件名为“myproject.jar”(该名称可以在pom文件中进行设定)。

  • 数据库部署

    安装MariaDb后,默认root用户是没有密码的,此时通过mysql -uroot命令登录到MariaDB,然后通过如下命令修改密码为654321

      mysql> use mysql;
    mysql> update user set password=password('654321') where user='root' and host='localhost';
    mysql> flush privileges;

    之后就可以导入数据库脚本了,我是通过Navicat客户端操作的。当然还有其他的工具,需要经过“大象装冰箱”三步走:

    新建数据库,设置编码utf-8,导入Sql文件。

  • 运行并见证奇迹

    我们通过如下命令运行项目,如未报错,则可以通过http://ip访问项目:

    nohup java -jar myproject.jar >log.txt &

3. 本文总结

项目经过辛苦的开发,终于进入上线,试运行。大公司一般会有专门人员负责部署工作,一般的小公司,开发人员要“全栈”。从需求,开发,测试,部署,等等都要负责。

此文不涉及自动化部署,也不谈docker等方式部署。

传统工艺,纯手工打造,值得拥有!

本文是个人项目部署的经验总结,结合了互联网上众多成功案例,不敢独自居功。

如果您阅读本文后哪怕有一丢丢收获,请不要吝啬你手中关注点赞的权力,谢谢!

一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)的更多相关文章

  1. 3步轻松搞定Spring Boot缓存

    作者:谭朝红 前言 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能.在Spring Boot应用程序中,我们可以通过Spring Caching来快速 ...

  2. Spring Boot +Vue 项目实战笔记(三):数据库的引入

    这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码. 一.引入数据库 之前说过数据库的采用是 MySQL,算是比较主流的选择,从性能和体量等方面都比较优秀,当然也有一些弊端,但数据库不是我们 ...

  3. 一文搞定 Spring Data JPA

    Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC.slf4j 这些一样,只定义了一系列的接口.具体在使用的过程中,一般接入的是 Hibernate 的 ...

  4. Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目

    前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...

  5. 一行配置搞定 Spring Boot项目的 log4j2 核弹漏洞!

    相信昨天,很多小伙伴都因为Log4j2的史诗级漏洞忙翻了吧? 看到群里还有小伙伴说公司里还特别建了800+人的群在处理... 好在很快就有了缓解措施和解决方案.同时,log4j2官方也是速度影响发布了 ...

  6. Spring Boot +Vue 项目实战笔记(二):前后端结合测试(登录页面开发)

    前言:关于开发环境 每位 Coder 都有自己偏好的开发工具,从大的方面划分主要有文本编辑器流和 IDE 流两种,我有一段时间也喜欢用编辑器(Sublime Text.Vim),但对我来说开发效率确实 ...

  7. 一文搞定 Spring事务

    Spring 事务 上文 使用SpringJDBC 1.JDBC事务控制 ​ 不管你现在使用的是那一种ORM开发框架,只要你的核心是JDBC,那么所有的事务处理都是围绕着JDBC开展的,而JDBC之中 ...

  8. 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  9. 两个开源的 Spring Boot + Vue 前后端分离项目

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

随机推荐

  1. Github开源人脸识别项目face_recognition

    Github开源人脸识别项目face_recognition 原文:https://www.jianshu.com/p/0b37452be63e 译者注: 本项目face_recognition是一个 ...

  2. visualStudio 无法登陆

    如果遇到 visualStudio 无法登陆,可以看下我的方法,可能有用 尝试关闭代理 打开设置.网络.代理,关了它,试试 如果遇到下面的问题: 我们无法刷新此账户的凭据 No home tenant ...

  3. MySQL Workbench: mysqldump version mismatch

    Windows10 64bit系统下,步骤就是: Edit --> preferences --> Administrator --> Path to mysqldump tool: ...

  4. 前端css图片固定宽高问题

    img需要宽高都固定时,图片往往会因此变形,此时可采用的方法有: 上述代码会使得图片居中,边缘部分不显示.这是在图片大小跟container大小差不多的情况下.如果图片很大的话,只显示中心部分是不行的 ...

  5. Vue+node.js实现一个简洁的个人博客系统

    本项目是一个用vue和node以及mysql实现的一个简单的个人博客系统,整体逻辑比较简单.但是可以我们完整的了解一个项目从数据库到后端到前端的实现过程,适合不太懂这一块的朋友们拿来练手. 本项目所用 ...

  6. pandas小程序应用-实验

    背景:来自于日常工作,针对医院行政人员统计日常门诊信息,手工统计繁琐.容易出错的问题,结合实际特点,采用python对数据进行自动统计. 具体步骤如下: 1.引入python工具包. import p ...

  7. web应用中web.xml文件的解释

    一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></di ...

  8. [wireshark] ip filter

    查ip 时,使用 ip==10.224.37.18 发现无效 使用 ip.dst, 查到了 Match destination: ip.dst == x.x.x.x Match source: ip. ...

  9. django框架(2)

    cookie和session 1.cookie不属于http协议范围, 由于http协议无法保持状态, 但实际情况, 我们却又需要"保持状态",因此cookie就是在这样一个场景下 ...

  10. 基于MIG IP核的DDR3控制器(二)

    上一节中,记录到了ddr控制器的整体架构,在本节中,准备把ddr控制器的各个模块完善一下. 可以看到上一节中介绍了DDR控制器的整体架构,因为这几周事情多,又要课设什么的麻烦,今天抽点时间把这个记录完 ...