易水风萧通用工具包说明。
易水通用开发组件是在日常开发过程中的一些常用工具类的积累。由于深感平时在 springboot 和 springcloud 的项目过程中需要反复引入大量相同的依赖包,从而带来的极大的不便,因此将在开发过程中将一些需要反复引用的依赖聚合起来,根据不同的颗粒度进行封装,方便开发。
一 通用工具包使用说明
易水通用工具包主要集成了目前在项目开发过程中个人经常会使用到的一些工具类,对一些常用的工具类进行了一下简单的封装。
工具包目前集成的工具有:
- 通用响应实体
- 对象工具
- 集合工具
- 加密工具
- 格式化工具
- 随机工具
- JSR 校验
- 自定义异常
- swagger-ui
- 驼峰转换等工具。
易水通用具体已上传到maven 中央仓库
其具体坐标为:
<dependency>
<groupId>com.yishuifengxiao.common</groupId>
<artifactId>common-tool</artifactId>
<version>${版本号}</version>
</dependency>
通用工具包的结构如下:
-com
--yishuifengxiao
----common
------tool
--------- bean 对象操作有关的工具类
--------- collections 集合操作有关的工具类
--------- convert 转换操作有关的工具类
--------- encoder 加密有关的工具类
--------- entity 常用实体类(包含通用响应实体类)
--------- exception 常用异常类
--------- format 格式化相关的工具类
--------- random 随机工具类
--------- utils 其他工具类
--------- validate JSR校验相关的工具类
对于通用工具包中一些常用重点工具类介绍如下:
1.1 通用返回类
由于在日常开发过程中,经常会遇到因为每次返回给前端的响应的接口不同而导致前端需要每次都要反复与后端对接的问题,因此引入通用返回类,使得每次与前端交互时的响应结构保持一致,节省前后端沟通成本。同时采用泛型的结构,使其能较为完美地支持 swagger-ui 显示,方便形成 swagger-ui 文档。
通用返回类的完全路径如下:
com.yishuifengxiao.common.tool.entity.Response
该工具主要用于统一定义控制层返回参数。
该工具的主要属性定义如下:
1 | /** |
注意:由于开启了空字段不序列化,因此在 msg 中携带的信息就已经很充分时,在返回接口中不会再出现 data 属性字段。自此段的具体含义需要查看具体接口的具体说明。
下面是一些常见的状态码的含义:
- 200: 请求已成功,请求所希望的响应头或数据体将随此响应返回
- 400: 语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求;请求参数有误。
- 401: 当前请求需要用户验证
- 403: 服务器已经理解请求,但是拒绝执行它
- 404: 请求失败,请求所希望得到的资源未被在服务器上发现
- 408: 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更
- 422: 请求格式正确,但是由于含有语义错误,无法响应
- 500: 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。
- 501: 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
- 502: 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
1.2 自定义异常
自定义异常的继承关系如下:
1.3 对象拷贝类
对象拷贝类的完全路径为
com.yishuifengxiao.common.tool.bean.BeanUtil
该工具主要用于将源对象里面的属性的值复制给目标对象。
使用方法如下:
1 | /** |
1.4 加密工具
加密工具的完全路径为
com.yishuifengxiao.common.tool.encoder.DES
本加密工具为对称加密,在 DES 加密算法的基础上演化而来。
二 易水聚合依赖
为了方便开发,将日常 springcloud 开发中使用到的依赖包聚合在一起,在开发 spring cloud 项目时只需要将 易水聚合依赖 引入即可。
易水聚合依赖的 maven 坐标如下:
1 |
|
易水聚合依赖主要由 易水 springboot 依赖 和 易水 spingcloud 依赖 整合而来,用户在使用时将版本号更新最新的版本号即可。
其定义如下:
1 | <dependency> |
2.1 易水 springboot 依赖
易水 springboot 依赖 主要解决在 springboot 项目开发过程中反复导入一些常见的 springboot 依赖的问题。
易水 springboot 依赖 由 易水数据层依赖和易水 swagger 启动器
易水 springboot 依赖在 易水数据层依赖 和 易水 swagger 启动器 之外额外包含的依赖有
- redis 相关的依赖
- spring-session 相关依赖
易水 springboot 依赖的坐标如下:
1 | <dependency> |
2.2 易水 spingcloud 依赖
易水 spingcloud 依赖主要是包含在日常 spring cloud 开发过程中,spring cloud 中的一些常见依赖,其坐标如下:
1 | <dependency> |