基於Vue+Spring MVC+MyBatis+Shiro+Dubbo開發的分佈式後臺管理系統

本文項目代碼:前端

服務端:https://github.com/lining90567/dubbo-demo-servervue

前端:https://github.com/lining90567/dubbo-demo-clientjava

最近項目中使用了shiro作權限管理,在開發過程當中也踩了一些坑,因而便有了開發個應用鞏固一下所學知識的想法,正好在開發的過程裏學習一下Vue開發。ios

技術棧方面,如今先後端分離大行其道,因而也採用了先後端分離的模式,前端基於Vue+Element,後端Web基於Spring MVC,用Dubbo提供分佈式服務,前端能夠部署到nginx,後端Web能夠部署到Tomcat、Jetty或Undertow等Servlet容器,Dubbo服務能夠做爲獨立的java進程運行,這種架構下,各層都比較容易實現橫向擴展,能夠根據業務量靈活調節。

分佈式服務基於Dubbo框架開發,業務邏輯的實如今該層完成。Dubbo能夠和Spring完美集成,其服務註冊與發現機制保證了服務的健壯性和伸縮性,其監控中心能夠記錄服務的運行狀況和調用次數,能夠根據監控數據作出服務實例的增減決策。

Web服務提供前端調用的RESTful api,並負責每次調用的身份認證和鑑權,因爲是先後端分離結構,Web端爲無狀態設計,使用JWT實現身份認證,基於Shiro編寫RESTful過濾器實現鑑權(在實際開發中發現shiro自帶的rest過濾器在無狀態web環境下會有問題),身份認證和鑑權成功後,調用Dubbo的rpc服務完成業務邏輯。

nginx

前端基於Vue+Element開發,用vue-router根據用戶權限實現動態路由,從而在沒有權限的狀況下即便在瀏覽器中輸入url,也沒法調用權限外的功能,用axios調用RESTful API,在header中攜帶JWT,Web服務根據該Token驗證用戶的身份和權限。git







項目代碼:github

服務端:https://github.com/lining90567/dubbo-demo-serverweb

前端:https://github.com/lining90567/dubbo-demo-clientvue-router

相關文章
相關標籤/搜索