首頁>技術>

前後端分離開發是當今開發的主流。本篇文章從零開始,一步步使用SpringBoot結合Vue來實現日常開發中最常見的登入功能,以及登入之後對使用者的管理功能。透過這個例子,可以快速入門SpringBoot+Vue前後端分離的開發。

1、前後端分離簡介

在這裡首先簡單說明一下什麼是前後端分離單頁式應用前後端分離 的核心思想是前端頁面透過 ajax 呼叫後端的 restuful api 進行資料互動,而 單頁面應用(single page web application,SPA),就是隻有一個頁面,並在使用者與應用程式互動時動態更新該頁面的 Web 應用程式。

2、示例所用技術簡介

簡單說明以下本示例中所用到的技術,如圖所示:

後端

SpringBoot:SpringBoot是當前最流行的Java後端框架。可以簡單地看成簡化了的、按照約定開發的SSM(H), 大大提升了開發速度。官網地址:https://spring.io/projects/spring-bootMybatisPlus: MyBatis-Plus(簡稱 MP)是一個 MyBatis的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。官網地址:https://mybatis.plus/

前端:

Vue :Vue 是一套用於構建使用者介面的漸進式框架。儘管Vue3已經發布,但是至少一段時間內主流應用還是vue2.x,所以示例裡還是採用Vue2.x版本。官網地址:https://cn.vuejs.org/ElementUI: ElementUI 是目前國內最流行的Vue UI框架。元件豐富,樣式眾多,也比較符合大眾審美。雖然一度傳出停止維護更新的傳聞,但是隨著Vue3的釋出,官方也Beta了適配Vue3的ElementPlus。官網地址:https://element.eleme.cn/#/zh-CN

資料庫:

MySQL:MySQL是一個流行的開源關係型資料庫。官網地址:https://www.mysql.com/

上面已經簡單介紹了本例項用到的技術,在開始本例項之前,最好能對以上技術具備一定程度的掌握。

一、環境準備1.1、安裝Node.js

前端專案使用 veu-cli腳手架,vue-cli需要透過npm安裝,是而 npm 是整合在 Node.js 中的,所以第一步我們需要安裝 Node.js,訪問官網 https://nodejs.org/en/,首頁即可下載。

下載完成後執行安裝包,一路下一步就行。然後在 cmd 中輸入 node -v,檢查是否安裝成功。

如圖,出現了版本號(根據下載時候的版本確定),說明已經安裝成功了。同時,npm 包也已經安裝成功,可以輸入 npm -v 檢視版本號

1.2、配置NPM源

NPM原始的源是在國外的伺服器上,下載東西比較慢。

可以透過兩種方式來提升下載速度。

下載時指定源//本次從淘寶倉庫源下載 npm --registry=https://registry.npm.taobao.org install配置源為淘寶倉庫//設定淘寶源 npm config set registry https://registry.npm.taobao.org

也可以安裝 cnpm ,但是使用中可能會遇到一些問題。

1.3、安裝vue-cli腳手架

使用如下命令安裝 vue-cli 腳手架:

npm install -g vue-cli

注意此種方式安裝的是 2.x 版本的 Vue CLI,最新版本需要透過 npm install -g @vue/cli 安裝。新版本可以使用圖形化介面初始化專案,並加入了專案健康監控等內容。

1.4、VS Code

前端的開發工具採用的當下最流行的前端開發工具 VS code。

下載對應的版本,一步步安裝即可。安裝之後,初始介面如下:

VS Code安裝後,我們一般還需要搜尋安裝一些所需要的外掛輔助開發。安裝外掛很簡單,在搜尋面板中查詢到後,直接安裝即可。

二、專案搭建2、後端專案搭建2.1、後端專案建立

後端專案建立如下:

開啟Idea, New Project ,選擇 Spring Intializr填入專案的相關資訊SpringBoot版本選擇了 2.3.8 , 選擇了web 和 MySQL驅動依賴建立完成的專案2.3.2、資料庫建立

資料庫設計非常簡單,只有一張表。

2.3.3、相關程式碼

MP提供了程式碼生成器的功能,可以按模組生成Controller、Service、Mapper、實體類的程式碼。在資料庫表比較多的情況下,能提升開發效率。官網給出了一個Demo,有興趣的可以自行檢視。

實體類
/** * @Author: 三分惡 * @Date: 2021/1/17 * @Description: 使用者實體類 **/@TableName(value = "user")public class User {    @TableId(type = IdType.AUTO)    private Integer id;    private String loginName;    private String userName;    private String password;    private String sex;    private String email;    private String address;    //省略getter、setter等}
Mapper介面:繼承BaseMapper即可
/** * @Author: 三分惡 * @Date: 2021/1/17 * @Description: TODO **/public interface UserMapper extends BaseMapper<User> {}

OK,到此單表的增刪改查功能已經完成了,是不是很簡單。

2、後端開發2.1、統一結果封裝

這裡我們建立了一個 Result 類,用於非同步統一返回的結果封裝。一般來說,結果裡面有幾個要素必要的

是否成功,可用 code 表示(如 200 表示成功,400 表示異常)結果訊息結果資料
/** * @Author: 三分惡 * @Date: 2021/1/17 * @Description: 統一結果封裝 **/public class Result {    //相應碼    private Integer code;    //資訊    private String message;    //返回資料    private Object data;    //省略getter、setter、構造方法}

實際上由於響應碼是固定的,code 屬性應該是一個列舉值,這裡作了一些簡化。

2.2、登入業務實體類

為了接收前端登入的資料,我們這裡建立了一個登入用的業務實體類:

public class LoginDTO {    private String loginName;    private String password;    //省略getter、setter}

啟動後端專案:

訪問登入介面,效果如下:

這樣一個簡答的登入就完成了,接下來,我們會對這個登入進一步完善。

四、登入功能完善

前面雖然實現了登入,但只是一個簡單的登入跳轉,實際上並不能對使用者的登入狀態進行判別,接下來我們進一步完善登入功能。

在最後一頁可以看到我們新增的使用者:

效果:

六、總結

透過這個示例,相信大家已經對 SpringBoot+Vue 前後端分離開發有了一個初步的掌握。

當然,由於這個示例並不是一個完整的專案,所以技術上和功能上都非常潦草

有興趣的同學可以進一步地去擴充套件和完善這個示例。

8
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 五分鐘實現外網訪問你的本地web專案(Ngrok內外網穿透)