Spring Boot + Vue CLI 前後端分離入門(配置&步驟)

RayLee
·
·
IPFS
·


(1) 安裝配置 Vue CLI

首先我們要使用 npm 安裝 Vue CLI,必須要先安裝Node.js

安裝 Node.js,官網下載即可 https://nodejs.org/en/

左邊是推薦版,右邊是最新版,兩個其實都可以
我是下載左邊的版本,下載好後,跟著步驟一路安裝到底即可

安裝完之後, 在 cmd 輸入 node -v , 確認是否安裝成功

這同時, npm 也安裝完成, 可以輸入 npm -v 查看版本

接著輸入 npm -g install npm 將 npm 更新到最新版

更新完後輸入 npm install -g vue-cli 安裝 Vue CLI

接著可以開始建立前端項目

到一個目錄, 新增一個資料夾 C:\testWorkspace

輸入指令 vue init webpack wj-vue

這邊是以 webpack 當作模板

wj-vue 是Project Name , 可以換成自己喜歡的

會問你是不是要安裝 vue-router , 要選 Y

安裝完之後, 到目錄內執行

需要在该文件夹 C:\testWorkspace\wj-vue

執行 npm install

然後執行 npm run dev

接著就到 http://localhost:8080 如果有看到下面網頁, 代表 Vue CLI 建置成功!!


(2) 安裝配置 Spring Boot

先到Eclipse Marketplace , 安裝 Tool

安裝完之後, 工作區右鍵, 選擇 Spring Starter Project

可以改名稱跟一些設定, Packaging 可以選 jar war 之類

這裡我有參考網路的, 所以我也是選 Spring Reactive Web

建好後, 專案目錄大概會長這樣

接著我們到 Application.java配置設定

#context path
server.servlet.context-path=/MySpringBoot
#port
server.port=8005

接著新增一隻 controller

@Controller
public class testController {
	
	private dataBean studentRecords;

	@RequestMapping(method = RequestMethod.GET, value="/test")
	  @ResponseBody
	  public String test() {
		return "TEST";
	  }
	@RequestMapping(method = RequestMethod.GET, value="/student/allstudent")
	  @ResponseBody
	  public dataBean getAllStudents() {
		studentRecords = new dataBean();
		studentRecords.setName("Ray");
		studentRecords.setAge(30);
		
	  return studentRecords;
	  }
}

接著專案右鍵, run Spring Boot App

看到下面console 代表成功

先試試看 是不是可以呼叫到 http://localhost:8005/MyFirstSpringBoot/test

如果看到頁面出現 TEST , 代表成功


最後, 我們回到 Vue CLI, 試著呼叫 /student/allstudent

先找到 config 下面的 index.js

修改 proxyTable 如下,這段的意思是,讓前面固定的 URL 名稱,改為用data

這樣前面程式呼叫的時候, 會乾淨許多

    proxyTable: {
      '/data': {                 
        target: 'http://localhost:8005/MySpringBoot/', 
        changeOrigin: true,
        pathRewrite: {
          '^/data': ''
        }
      }
    },

接著到 App.vue

把攏長的URL
http://localhost:8005/MySpringBoot/student/allstudent
簡化為
/data/student/allstudent

修改 created

<script>

import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'

Vue.use(VueAxios, axios)

export default {
  name: 'App',
  created () {
    Vue.axios
      .get('/data/student/allstudent')
      .then((response) => {
        console.log(response.data)
      })
      .catch((error) => {
        console.log(error)
      })
  }
}

修改好之後, 重啟一次 Vue CLI

在重新整理一次

就會看到console 呼叫的資料回來了




CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!