数据校验?
后台需要将前端传递的数据进行合法性验证
前端校验:用户可以自行关闭,不安全
java:后端校验
我们总是不信任前端的,所以需要前端+后端双重校验
后端使用JSR303标准进行校验,步骤:
1)给需要校验的javaBean上标注校验注解
2)告诉Springboot需要进行校验(在需要校验的javaBean上加上@Valid)
sprngmvc在进入方法之前,确定参数数值的时候就会进行校验,如果校验出错,则直接返回错误,不执行代码
3)如果感知校验成功还是失败?
只需要给开启了校验的javaBean参数后面,紧跟一个BindingResult对象就可以获取到校验结果,只要有这个参数,即使校验错了,方法也会执行,我们需要手动处理结果,BindingResult有个方法getErrorCount()可以判断校验是否出错和出错的个数,所以可以通过判断校验是否成功来决定是否执行下面的代码
但是我们并不希望每次需要校验都要写一段代码来完成,这样的话太冗杂,所以把这个功能给抽取出来变成一个切面aop,要专门写一个aop切面类,需要导入对应jar包和用对应的注解。
然后在切面类加上@Aspect注解
切面的通知分为前置通知,后置通知,返回通知,环绕通知,异常通知
这里想利用aop完成统一的数据校验,所以用环绕通知合适(因为要返回给前端无论成功与否),aop类代码如下:
用的环绕通知,注解@Around,try中proceed()前的是前置通知,后的是返回通知,catch里抓的是异常通知,finally的是后置通知。
还要统一处理异常类,接下来就是这个类的编写
但是这里接受不到这个异常,因为环绕通知里面抓到异常并没有进行处理,所以到不了异常类这里,应该要抛出来:
注意,Throwable是最大的异常类,应该转成运行时异常抛
商品的数据模型
1.spu与sku?
spu是库存量单位,即库存进出计量的基本单元,可以以件,盒,托盘为单位
sku是产品统一编号的简称,每种产品对应唯一的sku号
spu是某种产品
比如,苹果X就是spu,苹果X 银色 64GB就是sku,苹果X 银色 64GB的库存就是spu
来源:CSDN
作者:qq_40058686
链接:https://blog.csdn.net/qq_40058686/article/details/104214456