参数校验失败异常处理
- 建包exception
- 建类GlobalExceptionHandler
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import walker.pojo.Result;
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public Result handleException(Exception e) {
e.printStackTrace();
return Result.error(StringUtils.hasLength(e.getMessage()) ? e.getMessage() : "操作失败");
}
}
Validation的注解
-
@JsonIgnore
import com.fasterxml.jackson.annotation.JsonIgnore;
让springmvc把对象转换成json字符串的时候,忽略该属性,最终json字符串中就没有这个属性了 -
@NotNull
值不能为null
-
@NotEmpty
值不能为null,并且内容不能为空
-
@Email
满足邮箱格式
-
@URL
满足http格式
样例
package walker.pojo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@NotNull
private Integer id;//主键ID
private String username;//用户名
@JsonIgnore // 让springmvc把对象转换成json字符串的时候,忽略password,最终json字符串中就没有password这个属性了
private String password;//密码
@NotEmpty
@Pattern(regexp = "^.{1,10}$")
// @Pattern(regexp = "^\\s{1,10}$")
private String nickname;//昵称
@NotEmpty
@Email
private String email;//邮箱
private String userPic;//用户头像地址
private LocalDateTime createTime;//创建时间
private LocalDateTime updateTime;//更新时间
}