原文网址:SpringBoot全局处理系列--@ControllerAdvice_IT利刃出鞘的博客-CSDN博客
简介
本文用示例介绍如何进行SpringMVC的全局异常处理、全局响应处理、全局请求处理。
公共代码
下边这两个类好几处都用到了,单独把它提出来。
User实体类
package com.example.business.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class User {
private Long id;
private String userName;
private Integer age;
}
响应的包装
package com.example.demo.common.entity;
import lombok.Data;
@Data
public class Result<T> {
private boolean success = true;
private int code = 1000;
private String message;
private T data;
public Result() {
}
public Result(boolean success) {
this.success = success;
}
public Result<T> success(boolean success) {
Result<T> result = new Result<>(success);
if (success) {
result.code = 1000;
} else {
result.code = 1001;
}
return result;
}
public Result<T> success() {
return success(true);
}
public Result<T> failure() {
return success(false);
}
/**
* @param code {@link ResultCode#getCode()}
*/
public Result<T> code(int code) {
this.code = code;
return this;
}
public Result<T> message(String message) {
this.message = message;
return this;
}
public Result<T> data(T data) {
this.data = data;
return this;
}
}
自定义异常
package com.example.common.exception;
public class BusinessException extends RuntimeException{
public BusinessException() {
super();
}
public BusinessException(String message) {
super(message);
}
public BusinessException(String message, Throwable cause) {
super(message, cause);
}
}
全局异常(@ExceptionHandler)
见:SpringBoot--全局异常处理--方法/实例_IT利刃出鞘的博客-CSDN博客
全局响应(ResponseBodyAdvice接口)
见:SpringBoot--全局响应处理--方法/实例_IT利刃出鞘的博客-CSDN博客
全局请求(@ModelAttribute)
见:SpringBoot--全局请求处理--方法/实例_IT利刃出鞘的博客-CSDN博客