当前位置: 首页 > news >正文

@RestControllerAdvice注解

@RestControllerAdvice
@RestControllerAdvice 是 Spring Framework(3.2+)和 Spring Boot 中用于全局处理控制器层异常和统一响应格式的注解。它结合了 @ControllerAdvice 和 @ResponseBody 的功能,能够拦截控制器方法抛出的异常,并以 JSON/XML 格式返回处理结果。
核心作用
全局异常处理
捕获所有控制器(@RestController)抛出的异常,避免重复编写异常处理代码。
数据绑定与验证处理
统一处理参数校验(如 @Valid)失败时的错误响应。
数据预处理
通过 @InitBinder 或 @ModelAttribute 对请求参数进行全局处理。
基础用法示例

@RestControllerAdvice
public class GlobalExceptionHandler {

    // 处理特定异常
    @ExceptionHandler(IllegalArgumentException.class)
    public ResponseEntity<ErrorResponse> handleIllegalArgument(IllegalArgumentException ex) {
        ErrorResponse error = new ErrorResponse("参数错误", ex.getMessage());
        return ResponseEntity.badRequest().body(error);
    }

    // 处理所有未捕获的异常
    @ExceptionHandler(Exception.class)
    public ResponseEntity<ErrorResponse> handleGenericException(Exception ex) {
        ErrorResponse error = new ErrorResponse("服务器错误", ex.getMessage());
        return ResponseEntity.internalServerError().body(error);
    }
}

关键注解解析
在这里插入图片描述
注意事项
包扫描范围
确保 @RestControllerAdvice 类位于 Spring 组件扫描路径下。
异常匹配优先级
具体异常类型的处理器优先于通用异常处理器。
响应内容协商
支持根据请求的 Accept 头自动切换 JSON/XML 等格式(需配置对应转换器)。
通过合理使用 @RestControllerAdvice,可以实现异常处理与业务逻辑解耦,显著提升代码可维护性和 API 一致性。

相关文章:

  • Adaptive AUTOSAR UCM模块——快速入门
  • 安卓Compose中accompanist库使用详解
  • 【蓝桥杯python研究生组备赛】003 贪心
  • Python Reverse Engineering的中文意思是什么?概念分析、工具与技术、实施步骤、扩展阅读?
  • 部署达梦数据库到服务器
  • MySQL:SQL优化实际案例解析(持续更新)
  • JDK8和JDK17 Thread.interrupt() 实现区别
  • 软件综合实践微人事管理信息系统+燃气站信息管理系统+mapbox地图(实际上使用的高德地图开发)
  • 深度学习GRU模型原理
  • 【Academy】服务器端模板注入 ------ Server-side template injection
  • k8s面经
  • Elasticsearch-07-Elasticsearch Java API Client-Elasticsearch 8.0 的高阶api
  • Jmeter 测试一个网站的并发量
  • PHP 在 if 判断时由于运算符优先级导致 false 的问题
  • 【具身相关】legged_gym, isaacgym、rsl_rl关系梳理
  • Qt表格美化笔记
  • 华为OD机试-求字符串中所有整数的最小和-逻辑分析(Java 2023 B卷 100分)
  • AGI大模型(2):GPT:Generative Pre-trained Transformer
  • 【Godot4.3】RenderingServer总结
  • 安装 MongoDB 的步骤(Windows / macOS / Linux)
  • 6月底将返回中国,旅日大熊猫获颁“感谢状”
  • 确诊前列腺癌后,拜登首次发声
  • 河南通报部分未检疫生猪流入:立案查处,涉案猪肉被封存
  • 以军在加沙北部和南部展开大规模地面行动
  • 山东发布高温橙警:预计19日至21日局地可达40℃
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税