本文介绍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. MySQL 数据库中如何把A表的数据插入到B表?

    web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码 ...

  2. Python--day41--线程锁

    1,死锁 死锁代码示例: import time from threading import Lock, Thread noodle_lock = Lock() fork_lock = Lock() ...

  3. H3C DHCP系统组成

  4. WPF 使用 Composition API 做高性能渲染

    在 WPF 中很多小伙伴都会遇到渲染性能的问题,虽然 WPF 的渲染可以甩浏览器渲染几条街,但是还是支持不了游戏级的渲染.在 WPF 使用的 DX 只是优化等级为 9 和 DX 9 差不多的性能,微软 ...

  5. vue-router再学习

    vue路由: 1:动态路由配置 import Vue from 'vue' import Router from 'vue-router' import Index from '@/view/inde ...

  6. 【2016常州一中夏令营Day7】

    序列(sequence)[题目描述]蛤布斯有一个序列,初始为空.它依次将 1-n 插入序列,其中 i插到当前第 ai 个数的右边 (ai=0 表示插到序列最左边).它希望你帮它求出最终序列.[输入数据 ...

  7. win10 uwp 录制任意应用屏幕

    在 1803 可以使用 Windows.Graphics.Capture 捕获屏幕,可以用来录制应用的窗口 通过 CompositionAPI 和 win2d 可以作为 D3D 绘制,通过 Direc ...

  8. Windows 服务安装与卸载 (通过 Sc.exe)

    1. 安装 新建文本文件,重命名为 ServiceInstall.bat,将 ServiceInstall.bat 的内容替换为: sc create "Verity Platform De ...

  9. Android 最新架构

    1.Android系统架构 最新的Android系统分为五层六区(域): Linux内核层(Linux Kernel):Android系统基于Linux2.6内核,这一层为Android设备各种硬件提 ...

  10. win10安装Keras报错处理

    本机已经安装好TensorFlow安装Keras的过程中遇到了些问题,解决后做一下记录: 1.Keras与TensorFlow的关系 Keras默认以TensorFlow为后端,同时可选以Theano ...