1. 程式人生 > >基於Vue+Spring MVC+MyBatis+Shiro+Dubbo開發的分布式後臺管理系統

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

java dubbo shiro vue 分布式

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

技術棧方面,現在前後端分離大行其道,於是也采用了前後端分離的模式,前端基於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服務完成業務邏輯。

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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

項目代碼:

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

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

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