电商项目经验杂记1
记录一些自己在电商项目上遇到和解决了一些问题的经验,提高日后的开发能力和效率
1、使用逆向工程生成实体类和Mapper
本机逆向工程代码实例位置:E:\devTools\maven-tools\逆向工程实例代码\mybatis-generator
逆向工程生成的类中有很多的注释,批量删除注释的方法:
ctrl + R 正则表达式匹配:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*)
2、单元测试写法:
单元测试时,自定义的测试类要这么写:
3、Service层处理业务逻辑功能更清晰
例如:service层下有异常处理包,有service接口,有接口的实现类impl包
快捷键:ctrl + alt + t 对选中的代码块进行环绕,例如 if 、while 、for 、try等等
4、service中的注册功能进行密码加密:
盐值若不记录在数据库的话,会导致登录功能有误
外部定义一个调md5加密算法的方法:
5、控制层封装响应结果集对象
当中要包含状态码、描述信息、带泛型的数据,以此对象返回前端
其中描述信息中,要将捕获的异常赋值进去,这样前端就能显示后台出了什么问题
6、Controller层定义用于统一异常处理的基类BaseController
使用@ExceptionHandler(要拦截的异常类.class) 注解进行异常统一拦截处理
@ExceptionHandler注解用于统一处理方法抛出的异常。当我们使用这个注解时,需要定义一个 异常的处理方法,再给这个方法加上@ExceptionHandler注解,这个方法就会处理类中其他方法 (被@RequestMapping注解)抛出的异常。@ExceptionHandler注解中可以添加参数,参数是某 个异常类的class,代表这个方法专门处理该类异常。
又回顾了一遍ajax局部刷新向后台发送请求的流程,学习了一个新的传递参数的方式:
使用Ajax传递参数的时候,可以用serialize直接获取被选择的表单内所有参数值,
一起传值给后端,后端使用的springboot的话可以自动装配参数
7、使用会话Session的收获
用session进行登录功能时,将获取session的对象封装到了controller层的基类中 (controller层中所有的controller都继承这个基类)
8、使用框架中的拦截器HandlerInterceptor:
在访问某些页面时拦截未登录的用户,有三个方法,一般只用preHandle()方法
有拦截器还不够,因为有些页面,用户未登录也可以访问,不能全部拦截
所以需要使用servlet中的过滤器来指定白名单(未登录可以访问的url)和黑名单(未登录不能访问的url)