JSR303数据校验和@ControllerAdvice统一异常处理
创始人
2024-05-23 07:10:45
0

1.引入依赖(springboot2.3之后需要引入)

org.springframework.bootspring-boot-starter-validation2.6.6

2 .在实体类字段上加上需要校验的注解

@NotEmpty
@URL(message = "logo必须是一个合法url地址")
private String logo;
/*** 介绍*/
private String descript;
/*** 显示状态[0-不显示;1-显示]*/
private Integer showStatus;
/*** 检索首字母*/
@NotNull
@Pattern(regexp="/^[a-zA-Z]$/",message = "检索首字母必须是一个字母")
private String firstLetter;
/*** 排序*/
@Min(value = 0, message = "排序必须大于等于0")
private Integer sort;

3.在Controller里使用@Valid开启校验

@RequestMapping("/save")
public R save(@Valid @RequestBody BrandEntity brand){brandService.save(brand);return R.ok();
}

4.定义一个统一的异常处理类

@Slf4j
@RestControllerAdvice(basePackages = "com.atguigu.gulimall.product.controller")
public class GulimallExceptionControllerAdvice  {@ExceptionHandler(value = MethodArgumentNotValidException.class)public R handleValidException(MethodArgumentNotValidException e){log.error("数据校验出现问题{},异常类型{}",e.getMessage(),e.getClass());// 异常绑定结果BindingResult bindingResult = e.getBindingResult();Map map = new HashMap<>();bindingResult.getFieldErrors().forEach((fieldError)->{// 错误的字段描述String defaultMessage = fieldError.getDefaultMessage();// 错误的属性字段名String field = fieldError.getField();map.put(field,defaultMessage);});return R.error(BizCodeEnume.VALID_EXCEPTION.getCode(), BizCodeEnume.VALID_EXCEPTION.getMsg()).put("data",map);}
}

@Slf4j注解         开启日志

@RestControllerAdvice        统一异常处理并以json的方式返回

@RestController等同于        @ControllerAdvice +@ResponseBody

        basePackages 配置扫描的引用路径(那些Controller需要统一异常处理)

@ExceptionHandler异常处理(说明哪些异常需要处理)

        MethodArgumentNotValidException        方法参数无效异常

        图上表示方法参数无限异常需要处理

5.调用接口返回 

 

相关内容

热门资讯

我爱绿色作文 我爱绿色作文我爱绿色作文1我爱绿色,它代表着生命,只要世界上还有绿色就代表还有生命和希望。小草是多么...
平淡的生活作文 精选平淡的生活作文五篇  在平凡的学习、工作、生活中,大家都不可避免地会接触到作文吧,作文一定要做到...
可贵的“钉子”精神作文 可贵的“钉子”精神作文  《雷锋的故事》是我最喜欢读的一本书。雷锋是社会主义时代青年的楷模。他在学习...
幸运的作文 幸运的作文(精选57篇)  在我们平凡的日常里,大家或多或少都会接触过作文吧,写作文是培养人们的观察...
小刺猬穿衣服童话作文 小刺猬穿衣服童话作文  在生活、工作和学习中,大家对作文都再熟悉不过了吧,通过作文可以把我们那些零零...
你好,新学期作文 你好,新学期作文(精选57篇)  在日常生活或是工作学习中,大家都接触过作文吧,作文是由文字组成,经...
让爱住我家作文 让爱住我家作文3篇  在学习、工作、生活中,大家都接触过作文吧,作文根据体裁的不同可以分为记叙文、说...
踏春作文 踏春作文10篇  时间就像流水,或者说胜似流水。当秋天摇落最后一片残花的时候,我流下了眼泪,在一个哈...
我的教室作文 我的教室作文9篇  在平平淡淡的日常中,大家对作文都再熟悉不过了吧,作文是从内部言语向外部言语的过渡...
杜甫草堂游记作文650字 杜甫草堂游记作文650字(精选31篇)  在日常学习、工作和生活中,大家都有写作文的经历,对作文很是...
照大头贴作文200字 照大头贴作文200字第1篇照大头贴作文200字文章来源  照大头贴  放学后,妈妈带我去照大头贴,一...
拜年的作文 关于拜年的作文精选15篇  在平时的学习、工作或生活中,大家都不可避免地会接触到作文吧,作文根据写作...
写老师的作文 写老师的作文550字(通用45篇)  无论是身处学校还是步入社会,许多人都写过作文吧,作文是人们以书...
鼓励的眼神作文   鼓励的眼神作文(一)  眼是心灵语言的沟通,它甚至可以代替语言。当然眼神有很多种:期待的眼神、哀...
我的校园作文 我的校园作文400字(精选12篇)  在学习、工作或生活中,大家都经常接触到作文吧,作文是人们把记忆...
她真美作文 她真美作文  在平时的学习、工作或生活中,大家都不可避免地要接触到作文吧,作文是一种言语活动,具有高...
再见青春作文 再见青春作文800字  无论是身处学校还是步入社会,大家总免不了要接触或使用作文吧,作文是一种言语活...
辞旧迎新作文 辞旧迎新作文700字(精选45篇)  在日常的学习、工作、生活中,大家对作文都再熟悉不过了吧,通过作...
回乡记作文 回乡记作文  在学习、工作或生活中,大家都接触过作文吧,作文一定要做到主题集中,围绕同一主题作深入阐...
水稻的种植过程作文1000字 水稻的种植过程作文1000字(精选12篇)  在现实生活或工作学习中,大家都写过作文,肯定对各类作文...