1.品牌表属性中,对应的品牌信息,其中品牌的logo在数据库中保存的不是图片,而是图片的地址。

 

2.使用逆向工程,在前端也就是后台管理系统中,快速生成对应品牌表的增删改查CURD功能(页面),但是对应的更多细节需要重新在后端的业务逻辑代码中写。

具体做法是: 在逆向工程生成的文件中,有vue组件,将这些对应的vue组件放到前端项目中即可。

3.商品信息的删除和增加功能是对应有权限的,可以将权限全部返回为true。

4.文件上传功能,OSS(对象存储), 引入第三方存储软件--阿里云,七牛云...

适用于: 快速开发,快速迭代,弹性成本的项目

不同的文件存储方式:

谷粒商城 域名 NGINX gateway 谷粒官网_自定义

阿里云对象存储具体过程:

谷粒商城 域名 NGINX gateway 谷粒官网_表单校验_02

1).用户先将自己需要上传的文件资源放到自己服务器中

2).然后应用服务器根据阿里云的账号密码生成一个防伪签名(包含本次访问阿里云的令牌以及可以上传到阿里云的地址等)

3).然后用户根据2的防伪签名和1待上传的文件资源,发给阿里云,若签名正确,则阿里云接收此次上传资源

5.将第三方存储整合到商品服务中,product中

根据官方的api进行相关的配置即可。(注意要选中允许跨域

6.表单校验

61.数据校验 6.2分组校验 6.3自定义校验注解

前端在对后端进行数据提交的时候,是需要做一个表单校验的,否则传入到后端的数据是有问题的。

具体做法是,在elementUI中,rules属性传入约定的验证规则,并将Form-item的prop 属性设置为需检验的字段名即可,参考官方elementUI官方文档。

谷粒商城 域名 NGINX gateway 谷粒官网_表单校验_03

 当然,后端(服务端)也要进行表单校验,因为postman可以绕过前端给后端发请求。

后端校验,根据 JSR303---java规范提案,第303规定的数据校验相关标准。

具体的操作如下:

1.在entity中对要进行校验的字段添加相应的注解,并且自定义message提示

谷粒商城 域名 NGINX gateway 谷粒官网_自定义_04

不同的@xxx,可以写不同的校验内容

2.只是添加了校验注解,数据发给mvc(controller)并不会校验,需要在controller中需要校验的方法上标注注解,@ Valid才可以进行校验。校验之后BindingResult result,可以进行自定义封装返回结果。 如果要让自动返回异常结果,则不加BR result.

谷粒商城 域名 NGINX gateway 谷粒官网_自定义_05

6.3自定义校验注解

谷粒商城 域名 NGINX gateway 谷粒官网_上传_06

如:创建一个@ListValue自定义校验注解,使用一个ConstraintValidator校验,其参数是一个数组,可以拥有多个校验器。

谷粒商城 域名 NGINX gateway 谷粒官网_java_07

 根据源码来进行自定义创建,属性名,target等,在pom文件中,导入validation api

谷粒商城 域名 NGINX gateway 谷粒官网_上传_08

 

谷粒商城 域名 NGINX gateway 谷粒官网_上传_09

7.统一异常处理

创建Exception,并添加 @ControllerAdvice注解,统一返回异常结果

可以定义 要处理的异常的范围:

谷粒商城 域名 NGINX gateway 谷粒官网_表单校验_10

 @RestControllerAdvice == @ResponseBody(返回json) + @ControllerAdvice(注解)

对于异常状态码,可以有自己相关的规定,“400xx”前端,“500xx”后端等...

谷粒商城 域名 NGINX gateway 谷粒官网_java_11