Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十):接口服务整理
通用操作
通用操作是指一般的增删改查操作,逻辑大体都是一致的,所以统一抽象到CURD接口,需要用到CURD的表直接实现接口就可以了。
通用操作主要有以下几个:
保存操作
/**
* 保存操作
* @param record
* @return
*/
int save(T record);
更新操作
/**
* 更新操作
* @param record
* @return
*/
int update(T record);
删除操作
/**
* 删除操作
* @param record
* @return
*/
int delete(T record);
批量删除
/**
* 批量删除操作
* @param entities
*/
int delete(List<T> records);
分页查询
/**
* 分页查询
* 这里统一封装了分页请求和结果,避免直接引入具体框架的分页对象, 如MyBatis或JPA的分页对象
* 从而避免因为替换ORM框架而导致服务层、控制层的分页接口也需要变动的情况,替换ORM框架也不会
* 影响服务层以上的分页接口,起到了解耦的作用
* @param pageRequest 自定义,统一分页查询请求
* @return PageResult 自定义,统一分页查询结果
*/
PageResult findPage(PageRequest pageRequest);
根据ID查询
/**
* 根据ID查询
* @param id
* @return
*/
T findById(Long id);
登录管理
登录接口
名称:login
类型:post
路径:/sys/login
返回:HttpResult
参数:{LoginBean loginBean}
描述:登录接口,验证登录逻辑,生成令牌
验证码生成接口
名称:captcha
类型:get
路径:captcha.jpg
返回:void
参数:{HttpServletResponse response}
描述:生成并输出验证码图片到前台
令牌服务
创建令牌
名称:createToken
返回:SysUserToken
参数:{long userId}
描述:生成令牌字符,根据字符判断是否已经存在令牌
存在:更新过期时间,不存在:保存到数据库或缓存
根据用户ID查询
名称:findByUserId
返回:SysUserToken
参数:{long userId}
描述:根据用户ID查询令牌
根据令牌字符查询
名称:findByToken
返回:SysUserToken
参数:{String token}
描述:根据令牌字符查询令牌对象
用户管理
根据名称查询
名称:findByUserName
类型:get
路径:/user/findByUserName
返回:HttpResult
参数:{String userName}
描述:根据名称查询分页列表
修改用户密码
名称:updatePassword
类型:get
路径:/user/updatePassword
返回:HttpResult
参数:{String password, String newPassword}
描述:修改用户密码
机构管理
查询机构树
名称:findTree
类型:get
路径:/dept/findTree
返回:HttpResult
参数:{}
描述:查找机构树形列表,提供增删改查界面和用户选择所属机构
角色管理
根据角色名称查询
名称:findByRoleName
类型:get
路径:/user/findByRoleName
返回:HttpResult
参数:{String roleName}
描述:根据名称查询分页列表
查询全部
名称:findAll
类型:get
路径:/menu/findAll
返回:HttpResult
参数:{}
描述:查找全部,提供用户选择拥有角色
菜单管理
根据用户名查询菜单树
名称:findTree
类型:get
路径:/menu/findTree
返回:HttpResult
参数:{String userName}
描述:根据用户名查询用户拥有的菜单,用户名为空则返回全部
提供导航菜单、新增改查页面、角色授权菜单页面使用
源码下载
后端:https://gitee.com/liuge1988/kitty
前端:https://gitee.com/liuge1988/kitty-ui.git
作者:朝雨忆轻尘
出处:https://www.cnblogs.com/xifengxiaoma/
版权所有,欢迎转载,转载请注明原文作者及出处。
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十):接口服务整理的更多相关文章
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十五):Spring Security 版本
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 到目前为止,我们使用的权限认证框架是 Shiro,虽然 Shiro ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 温馨提示: 有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,右键头像 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十三):配置中心(Config、Bus)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十二):链路追踪(Sleuth、Zipkin)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 技术背景 在微服务架构中,随着业务发展,系统拆分导致系统调用链路愈发复杂,一个 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二十):服务熔断(Hystrix、Turbine)
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 雪崩效应 在微服务架构中,由于服务众多,通常会涉及多个服务层级的调用,而一旦基 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)
技术背景 上一篇教程中,我们利用Consul注册中心,实现了服务的注册和发现功能,这一篇我们来聊聊服务的调用.单体应用中,代码可以直接依赖,在代码中直接调用即可,但在微服务架构是分布式架构,服务都运行 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十八):注册中心(Spring Cloud Consul)
什么是 Consul Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十六):容器部署项目
容器部署项目 这一章我们引入docker,采用docker容器的方式部署我们的项目. 首先需要有一个linux环境,并且安装 java 和 maven 以及 docker 环境,这个教程多如牛毛,不再 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十五):系统服务监控
系统服务监控 新建监控工程 新建Spring Boot项目,取名 kitty-monitor,结构如下. 添加项目依赖 添加 spring boot admin 的相关依赖. pom.xml < ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十四):项目打包部署
项目打包部署 安装MySQL镜像 注意:如果使用docker镜像安装MySQL,也需要在前端部署主机安装MySQL,因为备份还原功能是使用MySQL的本地命令进行操作的. 下载镜像 执行以下命令,拉取 ...
随机推荐
- SSM_CRUD新手练习(4)修改生成的mapper.xml映射文件
我们为什么要修改呢,这是因为我们查询的时候,我们有时候需要连表查询,例如我们需要查询出员工表的信息(emp_id,emp_name...)与此同时,我们还想查询出该员工所在的部门(dept_name) ...
- bash获得脚本当前路径
#!/bin/bashCMD_PATH=`dirname $0`echo "current cmd path:$CMD_PATH"cd $CMD_PATHecho $PWDecho ...
- [转]Android中Intent传递对象的两种方法(Serializable,Parcelable)
http://blog.csdn.net/xyz_lmn/article/details/5908355 今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种 ...
- 再论hibernatetemplate
自动生成hibernate配置文件的时候,会在dao层用到getSession()方法来操作数据库记录,但是他还有个方法getHibernateTemplate(),这两个方法究竟有什么区别呢? 1. ...
- jQuery 与 或 的坑
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>< ...
- AngularJS ngTemplate寄宿方式 模板缓存 $templateCache
AngularJS的指令中经常定义模板(template或templateUrl),可以选择将Html模板直接寄宿在WEB容器中,如Tomcat.IIS.Nginx.NodeJs Express,也可 ...
- Linked List
链表是线性表的一种.线性表是最基本,最简单也是最常见的一种数据结构.线性表中数据元素之间的关系是一对一的关系,除了第一个和最后一个数据元素外,其他数据元素都是首尾相接的. 线性表有两种存储方式,一种是 ...
- Delphi实现拍照控件的程序代码
完整的delphi拍照控件代码,实现利用摄像头进行拍照的功能.需要TVideoCap控件支持. procedure Tfrm1.Button2Click(Sender: TObject); Var j ...
- HTTP协议(一)基本概念、HTTP方法、HTTP状态码
1.HTTP是什么? 它的全名叫:HyperText Transfer Protocol ,中国名字:超文本传输协议 : 它是可靠的数据传输协议,是Internet 的多媒体信使,即使数据相隔天涯海角 ...
- js判断是否手机自动跳转移动端
写法一: {literal} <script> //判断是否手机自动跳转 var browser={versions:function(){var u=navigator.userAgen ...