色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢技術(shù)專家

掃一掃
與技術(shù)專家在線溝通

Menu
SpringBoot+vue JAVA微服務(wù)開發(fā)模式詳解
       SpringBoot+vue JAVA微服務(wù)開發(fā)模式詳解,雖然Java依然是軟件工業(yè)界中最優(yōu)秀的語言,它一直保持著與時俱進。本項目將使用SpringBoot + Vue2 + Webpack2 配合最簡單CRUD的邏輯來展示一個基于Java的微服務(wù)全棧快速開發(fā)實踐的Demo。
      為什么選擇
SpringBoot?
      首先先來簡單的介紹一下Spring,它是目前Java生態(tài)中最廣為人知、流行的企業(yè)級Web框架。不像其他一些框架僅聚焦在某個領(lǐng)域,Spring框架通過其容器化組件式管理及開發(fā),可提供或定制各式各樣的功能來滿足企業(yè)化需求。

     那么相較于Spring,Spring Boot的目標是更加容易的創(chuàng)建Spring應(yīng)用、建立自動化、最少人為干預(yù)的生產(chǎn)級配置,真正意義做到開箱即用,并且對于新用戶及Spring平臺的用戶極易上手,快速開發(fā)。

下圖主要展示了Spring Boot在Spring龐大的生態(tài)圈中的層級關(guān)系

SpringBoot的目標主要:

  • 為所有Spring開發(fā)提供一個從根本上更快,且隨處可得的入門體驗。

  • 開箱即用,但通過不采用默認設(shè)置可以快速擺脫這種方式。

  • 提供一系列大型項目常用的非功能性特征,比如:內(nèi)嵌服務(wù)器,安全,指標,健康檢測,外部化配置。

絕對沒有代碼生成,也不需要XML配置。

下面展示的是本項目的SpringBoot相關(guān)代碼片段,你覺得簡單么?

 
@RestController
@RequestMapping("/api/persons")
public class MainController {

    @RequestMapping(
            value = "/detail/{id}", 
            method = RequestMethod.GET, 
            produces = MediaType.APPLICATION_JSON_VALUE
            )
    public ResponseEntity<Persons> getUserDetail(@PathVariable Long id) {

        /*
        *    @api {GET} /api/persons/detail/:id  details info
        *    @apiName GetPersonDetails
        *    @apiGroup Info Manage
        *    @apiVersion 1.0.0
        *
        *    @apiExample {httpie} Example usage:
        *
        *        http GET  127.0.0.1:8000/api/persons/detail/1
        *
        *    @apiSuccess {String} email
        *    @apiSuccess {String} id
        *    @apiSuccess {String} phone
        *    @apiSuccess {String} sex
        *    @apiSuccess {String} username
        *    @apiSuccess {String} zone
        */

        Persons user = personsRepository.findById(id);

        return new ResponseEntity<>(user, HttpStatus.OK);
    }

}

為什么是MVVM?

那么在我繼續(xù)之前,我也想和大家回顧一下Web開發(fā)的發(fā)展簡史:

  • 第一階段: 網(wǎng)頁三劍客,生猛的通過原生javascript直接操作Dom樹;

  • 第二階段: JQuery誕生,配合前端MVC為代表的Backbone.js, 讓我們可以優(yōu)雅而簡單的操作Dom樹;

  • 第三階段: 后端架構(gòu)升級為MVC,前后端分工更清晰,前端工程化、ECMAScript規(guī)范開始嶄露頭角;

  • 第四階段: 后端架構(gòu)進入了微服務(wù)時代,前端架構(gòu)不僅升級為MVVM,ES6更是成為目前事實上的標準;

在這里,我不想過于神化MVVM有多么的先進,JQuery為代表的MVC有多么的落后,但確實MVVM有著很多先進的特性:

  • 低開銷

  • 易維護

  • 可重用

為什么選擇Vue.js

Vue.js是MVVM設(shè)計模式中目前最火熱的一個前端框架之一,除了性能表現(xiàn)優(yōu)異之外,與類似React相比,更輕量級、更容易上手。

通過Vue中的“單文件組件”特性,更靈活的定義組件,不僅使代碼結(jié)構(gòu)更清晰,而且能與任何其他組件進行隨意組合,更具復(fù)用性。

Webpack是什么

Webpack提供了一整套前端工程自動化的解決方案

Demo

一個簡單的“上海人員信息查詢系統(tǒng)”作為例子

 

具備的功能(v0.1)

  • Spring Boot (后端)

    • 通過在Spring Boot中建立基于RestFul-API并使用@ RequestMapping實現(xiàn)一個基本的CRUD邏輯

    • 處理CORS(跨域資源共享)

    • 在Spring Boot中進行單元測試

    • 支持熱加載

    • 增加api接口文檔

    • 通過SpringBoot配合JPA來實現(xiàn)RestFul-API的分頁

  • VueJS & webpack (前端)

    • 遵循ECMAScript 6 規(guī)范

    • 如何在vue中使用‘單文件組件’進行開發(fā)編碼

    • 演示‘非父子組件’如何進行簡單的通信以及‘父子組件’之間如何傳遞數(shù)據(jù)

    • 如何和后端進行數(shù)據(jù)交互

    • 如何在vue中優(yōu)雅的引入第三方JS庫

    • 格式化時間

    • 分頁實現(xiàn)

    • 可復(fù)用組件

      • DbHeader.vue

      • DbFooter.vue (sticky footer)

      • DbFilterinput.vue

      • DbModal.vue

      • DbSidebar.vue

      • DbTable.vue

    得益于類似vue、react等MVVM模式,本項目的任何組件,只要您覺得合適,都可以復(fù)用在您的任何項目中,避免重復(fù)造輪子。

    • 如何通過webpack2配置來自動化構(gòu)建前端環(huán)境(包括如何配置vue2、處理靜態(tài)文件,構(gòu)建不同環(huán)境等等)

本項目主要技術(shù)棧

  • Java 1.7

  • Spring Boot 1.5.x

  • Maven

  • sqlite (not recommend, only convenience example)

  • vueJS 2.x

  • webpack 2.x

  • element ui

  • axios

準備工作

  • 安裝JDK1.7或更新的版本

  • 安裝Node.js/NPM

  • 克隆倉庫

    git clone 

    cd springboot_vue

安裝

  • 編譯前端開發(fā)環(huán)境

    cd springboot_vue/frontend

    npm install

使用

  • 運行Spring Boot后端服務(wù)

    cd springboot_vue/target/

    java -jar springboot_vue-0.0.1-SNAPSHOT.jar

 

  • 運行前端服務(wù)

    cd springboot_vue/frontend

    npm run dev

你也可以在生產(chǎn)環(huán)境中運行cd springboot_vue/frontend;npm run build進行編譯并配合Nginx