本文项目代码:

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

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

最近项目中使用了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

最新文章

  1. Erlang环境用eclipse搭建
  2. 后缀名“.dll .obj .lib”和“ .so .o .a”文件的区别含义
  3. C# 6.0的字典(Dictionary)的语法
  4. HDU 1394 Minimum Inversion Number(最小逆序数/暴力 线段树 树状数组 归并排序)
  5. 使用C#实现读取/写入Excel表
  6. SGU 149. Computer Network
  7. OpenCV的矩阵合并方法
  8. 2016 ACM/ICPC Asia Regional Shenyang Online
  9. Probability theory
  10. HDU 4360 As long as Binbin loves Sangsang spfa
  11. 【JavaScript的基本语法】
  12. 201621123043 《Java程序设计》第8周学习总结
  13. DBlink 创建 删除 脚本
  14. 如何在Mac的Finder中显示/usr,/tmp,/var等隐藏目录
  15. Spring的Java配置方式—@Configuration和@Bean实现Java配置
  16. CF101D Castle
  17. Jedis入门
  18. 安卓开发笔记——丰富多彩的TextView
  19. day26(分页查询)
  20. postman环境变量 全局变量清理

热门文章

  1. 使用Ajax无刷新页面登录
  2. Alpha 冲刺报告(5/10)
  3. 华为18.9.5校招笔试题AK
  4. 51nod 1444 破坏道路(bfs+枚举)
  5. Asp.net MVC 控制器扩展方法实现jsonp
  6. Python pip常用指令
  7. 关于onscroll函数兼容各浏览器的方法分析
  8. hive遇到的问题以及解决办法
  9. 【转】C++三大特性
  10. 提取win10默认锁屏壁纸