• @NotNull注解不生效,全局异常处理


    1.引入依赖

    
        org.springframework.boot
        spring-boot-starter-validation
        3.1.2
    

    2:实体类

    实体类属性加上@NotNull注解  例:@NotNull(message = "id不能为空")

    1. public class People {
    2. private Integer bizCode;
    3. @NotNull(message = "id不能为空")
    4. private Long id;
    5. private String name;
    6. private Integer age;
    7. private String address;
    8. private String userName;
    9. private String pwd;
    10. private String email;
    11. private String phonenumber;
    12. private String sex;
    13. public Long getId() {
    14. return id;
    15. }
    16. public Integer getBizCode() {
    17. return bizCode;
    18. }
    19. public void setBizCode(Integer bizCode) {
    20. this.bizCode = bizCode;
    21. }
    22. public void setId(Long id) {
    23. this.id = id;
    24. }
    25. public String getName() {
    26. return name;
    27. }
    28. public void setName(String name) {
    29. this.name = name;
    30. }
    31. public Integer getAge() {
    32. return age;
    33. }
    34. public void setAge(Integer age) {
    35. this.age = age;
    36. }
    37. public String getAddress() {
    38. return address;
    39. }
    40. public void setAddress(String address) {
    41. this.address = address;
    42. }
    43. public String getUserName() {
    44. return userName;
    45. }
    46. public void setUserName(String userName) {
    47. this.userName = userName;
    48. }
    49. public String getEmail() {
    50. return email;
    51. }
    52. public void setEmail(String email) {
    53. this.email = email;
    54. }
    55. public String getPhonenumber() {
    56. return phonenumber;
    57. }
    58. public void setPhonenumber(String phonenumber) {
    59. this.phonenumber = phonenumber;
    60. }
    61. @JsonIgnore
    62. @JsonProperty
    63. public String getPwd() {
    64. return pwd;
    65. }
    66. public void setPwd(String pwd) {
    67. this.pwd = pwd;
    68. }
    69. public String getSex() {
    70. return sex;
    71. }
    72. public void setSex(String sex) {
    73. this.sex = sex;
    74. }

    3:controller   加上@Valid 注解

    1. @RestController
    2. public class PeopleController {
    3. @PostMapping("save")
    4. public AjaxResult save( @RequestBody @Valid People people) {
    5. System.out.println(people);
    6. return AjaxResult.success( people );
    7. }
    8. }

    4:创建全局异常类,捕获异常

    1. /**
    2. * 全局异常处理器
    3. */
    4. @RestControllerAdvice
    5. public class GlobalExceptionHandler
    6. {
    7. private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
    8. /**
    9. * 自定义验证异常
    10. */
    11. @ExceptionHandler(MethodArgumentNotValidException.class)
    12. public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e)
    13. {
    14. log.error(e.getMessage(), e);
    15. String message = e.getBindingResult().getFieldError().getDefaultMessage();
    16. return AjaxResult.error(message);
    17. }
    18. }

    5:postman测试

           不传id测试

    传入id测试

  • 相关阅读:
    打开泰坦陨落2找不到msvcp120.dll无法执行代码/msvcr120.dll丢失修复方法
    Android开发之打包APK详解
    微服务项目:尚融宝(21)(后端搭建:OSS文件上传整合2)
    c语言基础:L1-059 敲笨钟
    四句话,让我掌握了工厂模式!
    未来城市可视化,A3D引擎支持,免费搭建全新一代数字孪生!
    docker常用命令
    8.Spring EL与ExpressionParser
    asp毕业设计——基于asp+access的在线教育系统设计与实现(毕业论文+程序源码)——在线教育系统
    ES6常问面试题(Promise,async和await 等)
  • 原文地址:https://blog.csdn.net/weixin_58696998/article/details/133269539