毕业设计
Gateway
- 开启服务发现
- 配置文件
1 | spring: |
前端
使用框架 jjQuery,vue,webpack
上传图片
使用阿里云的oss对象存储
服务器签名后直接传递
1
2
3
4graph LR;
A(用户)--1.用户向应用服务器请求上传policy--->jc(应用服务器);
jc--2.应用服务器上传返回上传policy-->A(用户);
A--3.用户直接上传数据到oss----->oss(oss);
- 引入spring-boot-starter-aliyun-oss
- 配置key,endpoint等相关信息
- 使用OSSClient 进行相关操作
依赖
1 | <dependency> |
application.yml配置
1 | spring: |
样例代码
1 |
|
gateway
网关配置
1 | - id: qq_route |
校验注解
JSR303
- 给bean添加校验注解javax.validation.constraint
- 添加@Valid注解 效果: 校验错误以后会有默认的响应
- 紧跟bean后一个BindingResult , 可以获取得到校验的结果
分组校验
- @NotBlank(message = “品牌名不能为空!!!!!”, groups = {AddGroup.class,UpdateGroup.class}) 给校验注解备注什么情况下需要进行校验
- @Validated(value = {AddGroup.class}) 在需要校验参数前加入
- 默认没有指定分组的注解会校验,指定了分组的不会校验
自定义校验
- 编写一个自定义的校验注解
- 编写一个自定义的校验器
- 关联自定义的校验器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package com.ysx.common.valid;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
public ListValue {
String message() default "{com.ysx.common.valid.ListValue.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
int[] values() default {};
}
统一异常处理
- @ControllerAdvice
- @ExceptionHandler
代码1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35package com.ysx.folimall.product.exception;
import com.ysx.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.util.HashMap;
import java.util.Map;
public class FolimallExceptionControllerAdvice {
public R handleValidException(MethodArgumentNotValidException e){
log.error("数据校验出现问题{},异常类型{}",e.getMessage(),e.getClass());
BindingResult result = e.getBindingResult();
Map<String,String> errorMap = new HashMap<>();
result.getFieldErrors().forEach((fieldError -> {
errorMap.put(fieldError.getField(),fieldError.getDefaultMessage());
}));
return R.error(400,"数据校验出现问题").put("data",errorMap);
}
public R handleException(Throwable throwable){
return R.error(400,);
}
}
父子组件(前端)
- 子组件给父组件传递数据,事件机制
- 子组件给父组件发一个事件,携带上事件
- this.$emit(“事件名字”,携带数据…);
子组件
1 | console.log("attrgourp感知被category被点击", data, node, component); |
父组件
1 | <template> |
openFeign
使用要注册进入注册中心, 并且在启动类加上
@EnableFeignClients(basePackages = “com.ysx.folimall.member.feign”) 注解
1 | package com.ysx.folimall.product.feign; |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment