二、商品分类模块
本模块的重难点是我加入了例如用注释统一进行参数校验、用Swagger一键生成API文档、统一鉴权、以及整合在springboot上的Redis运用等功能,优化了项目冗余的代码以及性能。
各功能实现如下:
后台功能:
- 、 增加目录分类功能
2、更新目录分类
3、删除分类
4、分类列表
5、前台递归列表
参数校验:在新增功能实现的过程中发现需要对各个传入的参数进行验证是一个巨大的代码量,所以引入@Valid注释进行快速统一核验。
实现过程: 1在Controller类中传参前加上@Valid注释,
2为防止污染pojo类,所以创建request包,在请求类中加入@NotNull等校验注释。
3在统一异常类中写好异常处理为暴露提示message
Swagge:一个自动生成精美API文档的插件
实现步骤:1、导入相关依赖springfox
2、 建立config包存放配置文件,并建立springfox类以及webMvcConfig配置地址映射,
导入固定代码。
3、在各接口的前面加入@ApiOperation注解
4、访问http://localhost:8083/swagger-ui.html可以看到API文档
统一鉴权: 在写后台的功能接口时,每个功能实现之前都需要对身份进行验证导致代码冗余,加入一个过滤器进行统一的鉴权可以一劳永逸的进行身份验证,非常方便。
实现步骤:1、在Filer包下创建管理员身份校验的AdminFiler类,将重复代码放入doFiler方法中看是否能复用,servletRequest.getSession方法获得session,通过校验进行放行,如不是管理员则通过out.write的方法返回异常提示。
2、config包中新建配置类通过扫描url来确定哪些方法需要鉴权。
Redis缓存:
在以往的测试中每次用户进行列表查看时都需要在数据库中查找出所有数据当数据足够庞大时每次查看都需要大量时间,这显然是不行的,所有加入redis缓存技术可以实现多次查看时非常快捷。(注意:此项目中的Redis是用于集成在springboot上的)
实现步骤:1、在maven中导入Redis的相关依赖
2、 在spingboot的application.properties配置文件中配置Redis的地址端口及密码、在MallApplication配置文件中加入注解@EnableCaching。
3、在列表功能的实现类中的方法前加上@Cacheable注释并将value配置成方法名。
4、在config包中创建Redis的配置类,返回一个redisCacheManager即可。
5、在VO类中实现Serializable接口



