基于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

相关文章
相关标签/搜索