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

如何自建网站 卖东西自己的电脑做服务器,并建网站

如何自建网站 卖东西,自己的电脑做服务器,并建网站,免费企业网站管理系统,关于卖零食网站建设需求分析文章目录 一、什么是 @ControllerAdvice? 二、核心功能与实战代码 1. 全局异常处理 (`@ExceptionHandler`) 2. 全局数据绑定 (`@ModelAttribute`) 3. 全局数据预处理 (`@InitBinder`) 三、精细化控制:限定增强的控制器 四、最佳实践与总结 五、简化版全局异常处理器(生产级)…

文章目录

  • 一、什么是 @ControllerAdvice?
  • 二、核心功能与实战代码
    • 1. 全局异常处理 (`@ExceptionHandler`)
    • 2. 全局数据绑定 (`@ModelAttribute`)
    • 3. 全局数据预处理 (`@InitBinder`)
  • 三、精细化控制:限定增强的控制器
  • 四、最佳实践与总结
  • 五、简化版全局异常处理器(生产级)

在构建 Spring MVC Web 应用时,我们每天都在编写 @Controller@RestController 来处理各类请求。但你是否遇到过这些令人头疼的场景?

  • 重复的异常处理:在每个控制器中一遍又一遍地写着相同的 try-catch 来处理 NullPointerExceptionServiceException
  • 全局数据绑定:需要为每一个页面的渲染提前注入一些通用数据,比如用户信息、系统配置等。
  • 统一的模型增强:在所有控制器方法执行后,都想对 Model 模型做一些统一的加工处理。

如果你对上述问题频频点头,那么恭喜你,Spring 为你准备了一把名为 @ControllerAdvice 的“瑞士军刀”。它允许你将这些横切关注点(Cross-Cutting Concerns)从具体的业务控制器中剥离出来,实现优雅、集中式的全局处理。

一、什么是 @ControllerAdvice?

简单来说,@ControllerAdvice 是一个组件注解(被 @Component 元注解标注),它允许你将一个类声明为一个全局的、跨多个控制器的增强器(Advice)

你可以把它理解为 Spring MVC 版本的 AOP(面向切面编程),但它不是基于代理,而是专门为控制器层设计的。它能够拦截所有或指定的控制器方法,在其执行前后施加统一的逻辑,实现三大核心功能:

  1. 全局异常处理 (@ExceptionHandler)
  2. 全局数据绑定 (@ModelAttribute)
  3. 全局数据预处理 (@InitBinder)

二、核心功能与实战代码

让我们通过代码来逐一感受它的强大之处。

1. 全局异常处理 (@ExceptionHandler)

这是 @ControllerAdvice 最常用、最受欢迎的功能。

场景:避免在单个 Controller 中处理异常,提供统一的 API 错误响应或错误页面。

@RestControllerAdvice // 等同于 @ControllerAdvice + @ResponseBody
public class GlobalExceptionHandler {/*** 处理自定义的业务异常*/@ExceptionHandler(BusinessException.class)public ResponseEntity<ApiResponse<?>> handleBusinessException(BusinessException ex) {ApiResponse<?> apiResponse = ApiResponse.fail(ex.getCode(), ex.getMessage());return new ResponseEntity<>(apiResponse, HttpStatus.BAD_REQUEST);}/*** 处理系统内置的异常,如参数缺失等*/@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<ApiResponse<?>> handleValidationException(MethodArgumentNotValidException ex) {String errorMessage = ex.getBindingResult().getFieldErrors().stream().map(FieldError::getDefaultMessage).collect(Collectors.joining(", "));ApiResponse<?> apiResponse = ApiResponse.fail(400, "参数校验失败: " + errorMessage);return new ResponseEntity<>(apiResponse, HttpStatus.BAD_REQUEST);}/*** 处理所有未明确捕获的异常,作为最后的兜底方案*/@ExceptionHandler(Exception.class)public ResponseEntity<ApiResponse<?>> handleGlobalException(
http://www.dtcms.com/a/471459.html

相关文章:

  • 智能手机网站模板建建建设网站公司电话号码
  • 第四章 神经网络的基本组件
  • 百度不收录新网站手机网站优化
  • 手机网站源码 html5网站建设与维护的不足
  • 德鲁克管理哲学:管理是知行统一的实践创新
  • 做场景秀的网站电子商城网站建设费用
  • **标题:发散创新:探究TPU架构的深度解析**在现代计算领域,TPU(Tensor Processing Unit)架构以其
  • 郑州做网站的专业公司西安做网站哪家比较好
  • 网站建设与维护服务器学习网站开发
  • Facebook受众挖掘的高效方法
  • 怎么建自己的摄影网站我的世界怎么做购买点卷网站
  • CasADi mpc
  • 六盘水网站开发北京度seo排名
  • Linux小课堂: 文件系统结构与核心命令解析
  • 做京东网站需要哪些手续费濮阳网站建设知名公司排名
  • 辽宁城市建设职业技术学院教育网站wordpress搭建软件下载
  • 营销型网站案例专题页面设计模板
  • Coze源码分析-资源库-编辑数据库-前端源码-核心组件
  • 如何创建一个论坛网站海南省交通建设局网站首页
  • 2025年生物学、农业与污染控制技术国际会议(BAPCT 2025)
  • 【全志V821_FoxPi】6-3 GC2083 MIPI摄像头适配
  • 东莞做网站哪家最好营销与销售的区别
  • 动态效果的网站建设技术网站开发技术分享ppt
  • 建设网站服务器选择html在线编辑器网页手机
  • 网站开发毕业设计开题报告跨境电商开发公司
  • 遂平县网站建设网页后台设计师工资一般多少
  • URL 设计
  • 档案网站的建设企业网站建立流程
  • 【OpenGauss】知识总结
  • 海淀教育人才网站网站系统正在升级维护