新建model,为相关字段添加validator注解
@Data public class InformationModel implements Serializable { private static final long serialVersionUID = InformationModel.class.getName().hashCode(); /** ID */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; /** 文章标题 */ @NotNull(message = "文章标题不能为空") @Size(min = 6, max = 11, message = "账号长度必须是6-11个字符") private String articleTitle; /** 标题图片 */ private String headerImage; /** 发布时间 */ private String releaseTime; /** 发布人 */ private String user; /** 修改时间 */ private String updateTime; /** 状态 */ private String status; }
在controller中为需要验证的参数加上@Valid注解
@PostMapping public ResultData add(@ModelAttribute @Valid InformationModel informationModel) { if (StrUtil.isBlank(informationModel.getHeaderImage())){ throw new TestException(SystemTip.SYSTEM_ERROR); } int count = informationService.insert(informationModel); // 操作数量小于0 if (count <= 0) { return ResultData.result(SystemTip.INSERT_FAIL); } return ResultData.success(); }
在全局异常处理类添加BindException异常处理
@Slf4j @ControllerAdvice public class BasicExceptionHandler { @ExceptionHandler public void handler(Exception e, HandlerMethod handlerMethod, HttpServletResponse response){ if (e instanceof TestException){ ResultUtil.responseJson(response,((TestException)e).toResultData()); }else if(e instanceof BindException){ ResultUtil.responseJson(response,bindExceptionHandler((BindException)e)); }else { log.error("{} method name: {}() handler error",handlerMethod.getBeanType(),handlerMethod.getMethod().getName(),e); ResultUtil.responseJson(response,new TestException(SystemTip.SYSTEM_ERROR).toResultData()); } } public ResultData bindExceptionHandler(BindException e) { // 从异常对象中拿到ObjectError对象 ObjectError objectError = e.getBindingResult().getAllErrors().get(0); // 然后提取错误提示信息进行返回 return ResultData.result(SystemTip.PARAM_VALID_FAIL,objectError.getDefaultMessage()); } }
相关推荐
对各种不同异常进行了全局统一处理 使用lombok简化java代码,让源码更简洁,可读性高 mybatis未进行二次封装,原滋原味,简单sql采用注解,复杂sql采用Mapper.xml配置 使用了layui的弹出层、菜单、文件上传、富...
9. **异常处理**:系统应具备良好的错误处理机制,SpringBoot提供的@ControllerAdvice和@ExceptionHandler注解可以帮助我们全局处理异常,提供友好的错误提示。 10. **部署与监控**:SpringBoot应用可以被打包成...
本资源摘要信息涵盖了 SpringBoot 框架的各个方面,包括整合 Mybatis-Plus、全局异常处理、RESTful API 接口统一 JSON 格式返回、参数校验、Swagger Api 自动生成文档、AOP 编程、默认 json 解析器、@ModelAttribute...
本文将详细介绍如何在SpringBoot中实现全局异常处理和数据校验。 首先,我们需要理解什么是全局异常处理。全局异常处理是指在应用程序中设置一个统一的机制,当发生异常时,能够捕获并处理这些异常,而不是让它们...
自定义全局异常处理器,统一处理程序中的异常,提供友好的错误信息。使用Logback或Log4j2进行日志记录,便于问题排查和系统监控。 10. **持续集成与部署** 利用Jenkins、GitLab CI/CD或Travis CI实现自动化构建和...
SpringBoot提供了全局异常处理,可以统一处理程序中的异常并返回合适的错误信息。 10. **测试**:为了确保系统的稳定性和正确性,项目可能包含了单元测试和集成测试,例如使用JUnit和Mockito进行后端测试,使用...
5. **异常处理**:系统应该具备良好的错误处理机制,使用Spring的@ControllerAdvice和@ExceptionHandler注解来统一处理全局异常,提供友好的错误信息反馈。 6. **数据验证**:为了确保输入数据的正确性,系统会利用...
如果验证失败,会抛出`MethodArgumentNotValidException`异常,可以通过全局异常处理器捕获并返回友好的错误信息。 ```java @PostMapping("/users") public ResponseEntity createUser(@Valid User user, Binding...
采用spring提供的@Validated注解结合hibernate的validator进行验证,你只需要在你的验证实体对象中使用验证注解,如@NotNull、@NotBlank等,同时在你的controller方法中加入@Validated注解即可,验证结果信息已经由...
例如,权限控制可能采用RBAC(Role-Based Access Control)模型,数据验证可能利用Hibernate Validator或自定义校验规则,异常处理通常会有一个全局的异常处理器,日志记录则可以使用Log4j或Logback等工具。...
为了优雅地处理这些错误,可以创建一个全局异常处理器,捕获并返回合适的错误响应。例如,创建一个`@ControllerAdvice`注解的类,然后使用`@ExceptionHandler`来处理异常。 6. **全局验证消息** 通过配置资源文件...
通过AOP(面向切面编程)处理全局异常,提升系统的健壮性。 综上所述,基于SpringBoot的高校教师科研管理系统整合了Java后端、Vue.js前端和MySQL数据库,构建了一个高效、易用的科研管理平台。开发者可以通过学习和...
5. **异常处理**:使用Spring的@ControllerAdvice和@ExceptionHandler进行全局异常处理,提供统一的错误响应。 微信小程序部分,可能包含以下几个关键组件和技术: 1. **页面结构**:使用WXML(微信小程序标记语言...
详细介绍了普通校验,分组校验,自定义注解校验等,全局异常处理,代码均为我自己编写,是我的学习笔记,并且发表了相关子蛾子,可以配合我的帖子查看,是一些简单的相关示例代码
6. **全局异常处理**:为了统一处理校验失败时的异常,可以在Spring Boot中配置全局的异常处理器,捕获`MethodArgumentNotValidException`并返回定制的错误信息。 7. **国际化支持**:JSR303允许你通过资源文件来...
2. **全局异常处理**:通过拦截所有异常,统一处理各种异常情况,提供良好的错误反馈和用户体验。 3. **页面缓存**:利用Thymeleaf和Redis,将预渲染的HTML页面缓存起来,减少服务器动态渲染的压力,提高响应速度。 ...
在实际应用中,通常会结合全局异常处理器(比如使用`@ControllerAdvice`注解的类),统一处理校验异常,返回格式化的错误信息,提供更好的用户体验。 总结,Spring中的`Validator`组件结合JSR-303和Hibernate ...
此外,为了更好地处理异常情况,可以定义一个全局异常处理器,用于捕获校验失败时抛出的异常,并提供用户友好的错误信息。例如,可以通过`@ControllerAdvice`和`@ExceptionHandler`注解来定义异常处理器: ```java ...
8. **异常处理**:在Java中,使用@ControllerAdvice和@ExceptionHandler注解可以全局处理异常,提供统一的错误反馈。 9. **日志记录**:使用Log4j或SLF4J进行日志记录,有助于调试和监控系统的运行状态。 10. **...