全局异常处理

全局异常处理使用两个注解来实现,@ControllerAdvice 和 @ExceptionHandler,如下:

//全局异常处理
@RestControllerAdvice
public class ExceptionProcessor {


    @ExceptionHandler({Exception.class})
    public Result<Exception> handleException(Exception e) {
        return Result.ok(e, -1, "通用异常");
    }

    @ExceptionHandler({BizException.class})
    public Result<BizException> handleException(BizException e) {
        return Result.ok(e,e.getState(),e.getMessage());
    }
}

```java
//自定义异常类,带状态码和错误信息,其中错误信息复用父类的message字段
public class BizException extends  RuntimeException{
    private int state;    
    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }
    public BizException(int state, String message) {
        super(message);
        this.state = state;
    }
}

日期处理

后端日期处理样例:

public class Contract {

    @DateFormat("yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date start;
}

前端vue日期格式, format控制前端显示格式,value-format控制向后端传送的格式(值的格式)

<el-data-picker v-model="start" 
    type="date" 
    value-format="yyyy-MM-dd" 
    format="yyyy-MM-dd" 
    placeholder="选择日期" ></el-data-picker>

写入cookie数据

    Cookie cookie = new Cookie("token", token);
    cookie.setPath("/");
    response.addCookie(cookie);
 document.cookie = "token="+res.data.data;