版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
罗荣良AOP切面编程与异常处理本节学习目标1.理解AOP(面向切面编程)的核心思想2.掌握AOP五大术语与切入点表达式3.实战:使用AOP实现Web请求日志记录4.掌握SpringBoot全局异常处理机制5.设计标准化的API统一响应格式痛点引入:代码里的“牛皮癣”如果要实现日志和异常处理功能:有三个Controller方法,每个开头都写System.out.println("日志...")
结尾都有try-catch。问题:如何消除重复的非业务代码?什么是AOP(面向切面编程)定义:将通用逻辑(日志、权限、事务)从业务逻辑中分离出来。比喻:汉堡包模型。面包片=切面逻辑(AOP)肉饼=业务逻辑(Controller/Service)切面(Aspect):关注点的模块化(类)连接点(JoinPoint):程序执行的点(方法)切入点(Pointcut):匹配连接点的规则通知(Advice):在切入点执行的动作AOP核心术语图解通知(Advice)的类型@Before:方法执行前@After:方法执行后(无论成功失败)@AfterReturning:方法成功返回后@AfterThrowing:抛出异常后@Around:环绕(最强大,可控制执行)实战一:Web请求日志切面目标:记录每个接口的URL、IP、方法名、耗时。依赖:spring-boot-starter-aop步骤:定义Aspect类->编写Pointcut->编写Advice切入点表达式详解代码:execution(public*com.example.controller.*.*(..))解析:*(返回值)com.example...(包路径)*(类名)*(方法名)(..)(任意参数)代码演示:定义切面类代码演示:获取请求信息
在@AfterReturning中记录result。技巧:利用ThreadLocal或@Around计算System.currentTimeMillis()差值。代码演示:记录返回值与耗时痛点二:丑陋的异常处理Controller中充斥着大量的try-catch块。弊端:代码臃肿,且返回给前端的错误格式不统一(有时是404页,有时是报错堆栈)。希望发生错误,后端都返回一个统一的JSON格式,比如:{"code":500,"msg":"系统繁忙"}全局异常处理原因@ControllerAdvice:控制器的增强器。@ExceptionHandler:捕获特定异常。流程:Controller抛出异常->被Advice捕获->返回友好的JSON。前后端分离标准JSON格式:code:状态码(200,500)msg:提示信息data:数据载体创建Result封装类。实战二:定义统一响应结构代码演示:全局异常处理器编写核心类GlobalExceptionHandler进阶:处理特定异常捕获ArithmeticException(除零错误)或自定义BusinessException。展示优先级:精确匹配优先。最终效果对比
Before:控制台报错,前端收到500堆栈页面。After:控制台打印优雅日志,前端收到{code:500,msg:"系统繁忙"}。本节小
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铜川市宜君县2025-2026学年第二学期三年级语文期末考试卷(部编版含答案)
- 定西地区渭源县2025-2026学年第二学期二年级语文第七单元测试卷部编版含答案
- 2026年安徽繁昌法院考试试题及答案
- 2026年基础会计期末考试试题及答案
- 2026年地理信息系统应用技能试题及答案
- 2026年软件测试基础考试试题及答案
- 安全人员资格证考试试题及答案
- 教育培训机构课程教育标准化操作指南
- 小众领域服务品质提升承诺书(4篇)
- 2026初中批判思维开学第一课课件
- 农业种植园区安全作业指导书
- 我不舒服健康教案
- 2025-2030年中国炭煤行业市场现状分析及竞争格局与投资发展研究报告
- DBJ51T193-2022四川省金属与石材幕墙工程技术标准
- 第十四章 整式的乘法与因式分解(压轴题专练)(原卷版)
- 2025年春季地理七年级期中素养评估(第七、八章)
- 无人机航测基础培训
- k歌沐足合同协议书范文范本
- 光伏发电监理表式(NB32042版-2018)
- 等差数列的通项与求和公式
- 布局经营 绘画构图基础 课件-2022-2023学年高二美术人美版(2019)选择性必修绘画
评论
0/150
提交评论