- 浏览: 185720 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (228)
- 链接数据库 (1)
- Linux下面安装tomcat步骤 (1)
- 数据库简单添加索引 (1)
- Ubuntu 16.04安装jdk步骤 (1)
- Ubuntu 16.04安装mysql链接工具workbench (1)
- Java基础 (1)
- Java 获取两个时间的时间查 如 1 天 2 小时 30 分钟 (1)
- jdbc链接增删该查 (1)
- springboot 跨域解决 (1)
- springboot如何读取配置文件(application.yml)中的属性值 (1)
- springboot配置redis (1)
- 数据库访问优化法则 (1)
- springboot 配置定时任务 (1)
- 使用Spring Boot上传文件 (1)
- Java并发编程:Callable、Future和FutureTask (1)
- springboot配置所有信息demo (1)
- 常用软件地址 (1)
- Java DateUtil时间大全 (1)
- Java DateUtil当天,本周,本月时间获取方法 (1)
- @Data的用法 (1)
- 身份证工具类 (1)
- springboot添加日志 (1)
- List集合中的对象按照某个字段去重实现 (1)
- JavaBean和Map转换封装类 (1)
- StringUtils工具类用法 (1)
- BigDecimal用户详情 (1)
- java常用集合总结 (1)
- openfile 插件开发步骤 (0)
- Linux rpc客户端步骤 (1)
- Java开发必会的Linux命令 (1)
- springboot配置拦截器,控制登录跳转 (1)
- springboot 异步调用的方法 (0)
- springboot如何读取配置文件test.properties (1)
- springboot 异步调用的方法 (1)
- HttpClient操作,HttpPost (1)
- HttpGet (1)
- HttpDelete (1)
- HttpPut (1)
- mybatis生成代码后,想用自己的关联查询demo (1)
- Arrays工具类十大常用方法 (1)
- 如何生成唯一订单号 (1)
- 订单号唯一性 (1)
- msyql lest的用法 (1)
- //循环递归删除 (0)
- 循环递归删除 (1)
- java 属性首字母大写返回json解决办法 (1)
- 根据两点间经纬度坐标(double值),计算两点间距离,单位为米 (1)
- 运用开发好的jar部署到linux服务中 (1)
- mybatis批量新增 (1)
- mybatis 增删该查demo,新手必看 (1)
- java中字符串查找一个字符串的个数几种方法 (1)
- @Select in 的用法 (1)
- Ubuntu 16.04使用ieda简单配置 (1)
- 统计一个字符串中相应字符出现的次数 (1)
- SimpleDateFormat同步的解决办法 (1)
- gradle打包springboot jar例子 (1)
- java 提取字符串中的数字 (1)
- springboot 对像异常处理,还可以作为全部异常处理 (1)
- 面试题 (0)
- Linux下面安装virtualBox (1)
- java带有效期的map (1)
- 2018年JAVA基础面试题和高级面试题总结 (1)
- mysql修改密码的方法 (1)
- 排名前 16 的 Java 工具类 (1)
- 最完整的Linux常用命令大全 (1)
- Mysql 开发标准规范 (1)
- idea 快捷键 (1)
- mysql 建立索引 (1)
- Java中判断字符串是否为数字的五种方法 (1)
- springboot集成redis (1)
- springboot异步调用demo (1)
- springboot2集成redis (1)
- springboot2集成Elasticsearch (1)
- java过滤敏感字体的方式 (1)
- 对象的值赋给另一个对象 (1)
- mybitse+pagehelper 的使用方法 (1)
- java时间的处理 (1)
- xshell5 下载地址 (1)
- springboot2集成Excel (1)
- 检查数组是否包含某个值的方法 (1)
- 关于Java代码优化的N条建议! (1)
- Java Map按Key值进行排序 (1)
- List进行排序 (1)
- Stream 完整实例 (1)
- StringUtils isNoneBlank和isAnyBlank——demo (1)
- vim最全常用命令 (1)
- JWT生成Token (1)
- 学习参看地址 (1)
- java初始化数据 (1)
- 简单json (1)
- 数据库脚本 (1)
- restTemplate http请求 (1)
- 学习网站 (1)
- JsonUtil (1)
- Rsa (1)
- BeanUtils的赋值方法比较 (1)
- HttpClientUtil (2)
- ValidUtils (0)
- 读取excel,批量插入库demo (1)
- springboot对redis封装使用 (1)
- java后端简答验证码 (1)
- java高级面试题及其答案 (1)
- 序列换成json时 (1)
- 将所有的long变成string (1)
- ControllerAdvice (0)
- RedisService 工具类 (1)
- Java常用正则表达式验证工具类RegexUtils (1)
- CollectionUtil (1)
- thrift使用 (1)
- springboot播客学习 (1)
- mybitse 批量更新 (1)
- https://www.cnblogs.com/cxiaocai/p/11715874.html (1)
- elasticsearch安装及其head步骤 (0)
- elasticsearch7.6.2安装及其head、kibana、ik分词器步骤 (0)
- elasticsearch7.6.2集成springboot (0)
- gradle仓库选址 (1)
- elasticsearch7.6.2集成springboot2.2.6---2 (1)
- elasticsearch7.6.2安装及其head、kibana、ik分词器步骤-----1 (1)
- elasticsearch7.6.2集成springboot2.2.6基本语法---3 (1)
- Jsoup (1)
- elasticsearch7.6.2集成springboot2.2.6----demo (1)
- mybatis官网地址 (1)
- springboot发送邮件到qq (1)
- navicat Premium 链接sql Server的方法 (1)
- 简单开发springboot搭建 (1)
- sqlServer 查询两个小时的sql语句 (1)
- BigDecimalUtil (1)
- 雪花算法生成id (1)
- JsonUtils (1)
- Spring Boot监控与管理的实现 (1)
- springboot 使用undertow启动,替换tomcat (1)
- RedisConfig配置使用 (1)
- RedisUtil (1)
- easypoi读取excel (1)
- easyexcel读取excel (0)
- easyexcel读取excel与下载 (1)
- 生成指定长度的随机数 (1)
- Spring Boot AOP实战 (1)
- fastjsonfastjson新手必看 (1)
- 获取IP地址 (1)
- CommonUtils (1)
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载 (1)
- DateUtils 最新工具类 (1)
- screw的使用 (1)
- 15000 字的 SQL 语句大全 (1)
- hutool (1)
- PdfToWord (1)
- MySQL修改最大连接数 (1)
- MAP排序 (1)
- 归纳从文件中读取数据的六种方法-JAVA IO基础总结 (1)
- 天气 (1)
- Intellij IDEA中Mybatis Mapper自动注入警告的6种解决方案 (1)
- 全网最全编程学习网站汇总来了,还不赶快收藏 (1)
- win10 (0)
- 电脑知识 (0)
- util工具类 (1)
- ieda提示mapper报错 (1)
- zysnba (1)
- 自增方式 (1)
- mybits链表查询 (1)
- SpringBoot如何优雅的处理校验参数 (1)
- 参考记录 (1)
- 企业微信封装方法 (1)
- 二维码 (1)
- mysql简单创建索引 (1)
- msyql函数 (1)
- mybitse-plus多表查询demo (1)
- git 提交本地代码步骤 (1)
- gradle5.X以上lombok引入 (1)
- SpringBoot定时任务及Cron表达式详解 (1)
- Hutool工具集之DateUtil(日期时间工具)详解使用 (1)
- 对象属性为空字符串变成null (1)
- DateUtils 工具类 (0)
- face++照片不对工具类 (1)
- 判断某个值是否在list集合中的某个对象中存在 (1)
- mybatisplus时间更新操作 (1)
- Java8 List通用方法处理总结 (1)
- 阿斯蒂芬 (0)
- springboot多数据源配置 (0)
- MyBatis和MyBatis-Plus 官网地址 (1)
- jwt (0)
- java---ValidUtils (1)
- Java之下载网络图片到本地文件夹 (1)
- 初始化内容数据 (1)
- springboot启动指定端口和启动环境 (1)
- 根据生日计算年龄 (1)
- idea快捷键大全 (1)
- springboot数据验证例子 (1)
- springboot文章 (1)
- 获取当前时间,推迟一年 (0)
- 获取当前时间,推迟一周 推迟一年示例 (1)
- ResultBean返回对象 (1)
- SpringBoot注解最全详解 (1)
- JeecgBoot (1)
- 电脑优化 (0)
- 简单数据队列 (1)
- CacheUtil换成工具类 (0)
- CacheUtil缓存工具类 (0)
- xml和对象互转 (0)
- 导出word (0)
- 企业微信通过code获取用户基本信息 (1)
- Java开发中的一些小技巧 (1)
- 判断当前时间是否在一个时间区间例如8点:21点 (1)
- springboot 启动指定环境 (1)
- 打印springboot启动的环境 (1)
- 根据时间日期获取当天是周几 (1)
- LocalDateTimeToString (1)
- java导出word (1)
- java 对xml和对象互转 (1)
- java CacheUtil缓存工具类 (1)
- 史上最牛逼电脑优化,让电脑飞起来 (1)
- isEmpty 和 isBlank 的用法区别 (1)
- 根据图片url地址获取其流InputStream (1)
- springboot解决LocalDateTime (1)
- springboot配置文件list映射 (1)
- SpringBoot中必须掌握的45个注解 (1)
- sql 优化的 15 个小技巧 (1)
- Cron表达式 (1)
- 数据库创建时间和修改时间默认值 (1)
- 小程序解析手机号 (1)
- 小程序获取手机号 (0)
- java 获取resource下面的文件路径,springboot打成jar也可以使用 (1)
- 数据库字段不显示对象和swwager前段不显示 (1)
- java生成pdf (1)
- springboot 异步调用 (1)
- java获取时间段内的每一天 (1)
- hutool----DateUtil简单的时间 (1)
- java 8两个List集合取交集、并集、差集、去重并集 (1)
- 服务调用demo (1)
- hutool导入excel (1)
- hutool导出 (1)
- 切面日志 (1)
- 校验参数为空 (1)
- 两个集合对象某一个属性相匹配 (1)
- JAVA stream流详细教程 (1)
- 查看java进程的命令 (1)
- Java 保留两位小数 百分数 (1)
- freemarker读写word模板生成word文档 (1)
- springboot项目中,读取 resources 目录下的文件的9种方式 (1)
- Knife4j (1)
- Java8 获取两个List交集 (1)
- list泛型和list对象交集 (1)
- 未来7天过生日的孩子sql (1)
- 数据校验,全局异常 (1)
- 获取最近10天过生日的sql (1)
- 随机数 (1)
- Java获取两个日期的天数打印 (1)
- 通过时间获取星期几 (1)
- Java时间类型相互转化 (2)
- 小程序登录 (1)
- 手机号 (0)
- sse调用 (0)
- httpsse调用 (1)
- 初始延迟3秒执行任务 (0)
最新评论
package com.exception;
import com.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.support.DefaultMessageSourceResolvable;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author zys 2023-08-16
*/
@RestControllerAdvice(annotations = RestController.class)
@Slf4j
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public Result<?> errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e)throws Exception{
if (e instanceof Exception ) {
log.error("Exception 处理异常:\t",e);
return Result.error(e.getMessage());
}
if (e instanceof DuplicateKeyException) {
log.error("SQLIntegrityConstraintViolationException业务处理异常:\t",e);
return Result.error("数据重复");
}
log.error("GlobalExceptionHandler处理异常:\t",e);
return Result.error("系统异常,请稍后再试");
}
/**
* 处理 form data方式调用接口校验失败抛出的异常
* @param e 异常
* @return Result
*/
@ExceptionHandler(BindException.class)
public Result<?> handleBindException(BindException e) {
List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
String collect = fieldErrors.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败,"+ collect);
}
/**
* 处理 json 请求体调用接口校验失败抛出的异常了
* @param e 异常
* @return Result
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public Result<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
String collect = fieldErrors.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败,"+ collect);
}
/**
* 处理单个参数校验失败抛出的异常
* @param e 异常参数
* @return Result
*/
@ExceptionHandler(ConstraintViolationException.class)
public Result<?> handleConstraintViolationException(ConstraintViolationException e) {
Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
String collect = constraintViolations.stream()
.map(ConstraintViolation::getMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败了,"+ collect);
}
}
package com.exception;
/**
* @author zys 2023-08-16
*/
public class Exception extends RuntimeException{
public Exception (String message) {
super(message, null, false, false);
}
}
demo写起来
@PostMapping("/test")
@ApiOperation(value = "测试")
private Result test(@Validated @RequestBody Test test){
return Result .ok(test);
}
jar
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.17.Final</version>
</dependency>
import com.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.support.DefaultMessageSourceResolvable;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author zys 2023-08-16
*/
@RestControllerAdvice(annotations = RestController.class)
@Slf4j
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public Result<?> errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e)throws Exception{
if (e instanceof Exception ) {
log.error("Exception 处理异常:\t",e);
return Result.error(e.getMessage());
}
if (e instanceof DuplicateKeyException) {
log.error("SQLIntegrityConstraintViolationException业务处理异常:\t",e);
return Result.error("数据重复");
}
log.error("GlobalExceptionHandler处理异常:\t",e);
return Result.error("系统异常,请稍后再试");
}
/**
* 处理 form data方式调用接口校验失败抛出的异常
* @param e 异常
* @return Result
*/
@ExceptionHandler(BindException.class)
public Result<?> handleBindException(BindException e) {
List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
String collect = fieldErrors.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败,"+ collect);
}
/**
* 处理 json 请求体调用接口校验失败抛出的异常了
* @param e 异常
* @return Result
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public Result<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
String collect = fieldErrors.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败,"+ collect);
}
/**
* 处理单个参数校验失败抛出的异常
* @param e 异常参数
* @return Result
*/
@ExceptionHandler(ConstraintViolationException.class)
public Result<?> handleConstraintViolationException(ConstraintViolationException e) {
Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
String collect = constraintViolations.stream()
.map(ConstraintViolation::getMessage)
.collect(Collectors.joining());
return Result.error("参数校验失败了,"+ collect);
}
}
package com.exception;
/**
* @author zys 2023-08-16
*/
public class Exception extends RuntimeException{
public Exception (String message) {
super(message, null, false, false);
}
}
demo写起来
@PostMapping("/test")
@ApiOperation(value = "测试")
private Result test(@Validated @RequestBody Test test){
return Result .ok(test);
}
jar
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.17.Final</version>
</dependency>
相关推荐
Bean Validation是Java定义的一套基于注解的数据校验规范。这里简单实现了Spring Boot 参数校验,包括自定义注解,分组校验,全局异常处理等
在本项目中,我们将探讨如何利用Spring Boot、JWT(JSON Web Token)、Spring Security和Redis来实现一个高效的登录拦截和权限认证系统,同时实现全局异常处理和统一的API返回风格。 1. **Spring Boot**:Spring ...
6. **全局异常处理**:为了统一处理校验失败时的异常,可以在Spring Boot中配置全局的异常处理器,捕获`MethodArgumentNotValidException`并返回定制的错误信息。 7. **国际化支持**:JSR303允许你通过资源文件来...
基于Spring Boot框架的综合应用系统 项目简介 本项目是一个基于Spring Boot框架的综合应用系统,涵盖了从基础...3. 全局异常处理 处理参数缺失异常、空指针异常和自定义异常。 4. 切面AOP 使用Pointcut定义切点。
在 Spring Boot 框架中实现全局校验是一个非常重要的任务。在 این篇文章中,我们将介绍如何使用自定义的 AOP 来实现全局校验。首先,我们需要定义一个注解,用于标记需要校验的参数。然后,我们将使用 AspectJ ...
全局异常处理使用GlobalExceptionHandler处理Spring MVC框架异常、Spring Security异常、自定义异常等。 方法级别权限校验实现方法级别的入参校验和权限校验。 2. 日志记录 方法入参及耗时日志通过...
项目涵盖了用户登录、商品展示、秒杀活动等核心功能,并通过全局异常处理、参数校验、统一响应格式等技术手段确保系统的稳定性和安全性。 项目的主要特性和功能 1. 用户登录与安全 使用两次MD5对用户密码进行...
基于Spring Boot的聚合搜索平台 ... 异常处理全局异常处理器,统一处理业务异常。 技术栈 后端Spring Boot, MyBatis Plus, Elasticsearch, Redis 前端React, Ant Design 数据库MySQL 其他Lombok, Swagge
如果数据不符合约束条件,Spring Validation 将抛出 MethodArgumentNotValidException 异常,我们可以在全局异常处理类中处理这个异常。 Spring Validation 是一个非常有用的工具,可以帮助我们简化数据校验的代码...
全局异常处理器 自定义错误码 封装通用响应类 Swagger + Knife4j 接口文档 自定义权限注解 + 全局校验 全局跨域处理 长整数丢失精度解决 多环境配置 工具类: Easy Excel 表格处理 Hutool 工具库 Apache Commons ...
堆栈通常位于RAM的高地址部分,依次向下分配内存给malloc、全局数据结构bdinfo,以及根据配置可能存在的中断和快速中断栈。 整个启动流程还包括对系统硬件的初始化,如内存控制器、时钟、GPIO、串口等。此外,U-...
总的来说,通过集成`spring-boot-starter-validation`,我们可以轻松地在Spring Boot应用中进行接口参数的校验,确保数据的正确性和一致性,提高了系统的稳定性和用户体验。同时,该框架也提供了丰富的扩展性,支持...
MyBatis Plus是一个MyBatis的增强工具,它在MyBatis的基础上做了很多简化,如:提供 CRUD 操作、支持自定义全局通用操作、提供强大的条件构造器等。在Jeecg-Boot中,MyBatis Plus用于数据库操作,大大减少了手动编写...
# 基于Spring Boot和MyBatis Plus的秒杀商城系统 ## 项目简介 本项目是一个基于Spring Boot和MyBatis Plus框架实现的秒杀商城系统。... 异常处理使用全局异常处理机制,统一处理系统中的异常信息。
# 基于Spring Boot和Redis的高性能秒杀系统 ## 项目简介 本项目是一个基于Spring Boot和Redis的高性能秒杀系统,旨在通过优化系统架构和使用... 全局异常处理器+自定义业务异常统一处理系统异常,提升系统的健壮性。
5. **13-spring-boot-validate**:这是关于数据校验的部分,Spring Boot集成了JSR-303/JSR-349标准,可以使用@Valid注解对表单提交的数据进行验证。 6. **09-spring-boot-view-freemarker**:Spring Boot支持多种...
5. **异常处理**:Spring Boot提供了统一的异常处理机制,源码中的全局异常处理器展示了如何优雅地处理运行时异常,提供友好的错误信息。 6. **配置管理**:Spring Boot支持通过application.properties或YAML文件...
- Spring Boot 基础知识,包括SpringBoot起步、配置详解、aop、filter、拦截器、监听、启动器、全局异常处理、外部Tomcat启动、HTTPS、监控 等。 - springboot-data - Spring Boot 数据库操作,包括SpringJDBC、...
7. **错误处理与日志记录**:Spring Boot提供了全局异常处理和日志记录的机制。通过@ControllerAdvice和@ExceptionHandler,我们可以统一处理可能出现的异常,提供友好的错误信息。同时,使用Log4j或Logback记录系统...
SpringBoot在设计上提供了优雅的方式来处理程序运行时可能出现的各种异常,使得开发者...通过自定义异常、全局异常处理器和参数校验,我们可以更好地管理和控制应用的错误处理流程,从而提升用户体验和系统的健壮性。