Spring知识梳理(4)
Spring知识梳理(4)作者没有四次元口袋的蓝胖日期2026-07-16标签Java, Spring, AOP, 面向切面编程一、AOP 是什么AOPAspect-Oriented Programming面向切面编程是对 OOP 的补充。OOP纵向继承解决类与类之间的复用封装、继承、多态AOP横向抽取解决跨多个类的公共行为复用日志、事务、权限、性能监控传统 OOP 的问题 UserService OrderService ProductService ↓ ↓ ↓ 日志代码 日志代码 日志代码 ← 重复 事务代码 事务代码 事务代码 ← 重复 权限代码 权限代码 权限代码 ← 重复 AOP 的解决方式 UserService OrderService ProductService ↓ ↓ ↓ ┌─────────┐ │ AOP 切面 │ ← 统一抽取一处维护 └─────────┘一句话总结AOP 把散落在各处的公共逻辑抽到一个地方统一管理不侵入业务代码。二、核心术语7 个必须分清术语英文含义例子切面Aspect横切关注点的模块化日志切面、事务切面连接点JoinPoint程序执行的某个点方法调用、异常抛出每个方法都是一个连接点切入点Pointcut你选择的哪些连接点要被增强execution(* service.*.*(..))通知增强Advice切入后做什么打日志、开事务目标对象Target被代理的原始对象UserService 实例代理对象ProxyAOP 生成的增强后的对象包含日志逻辑的 UserService织入Weaving把切面逻辑应用到目标对象的过程Spring 在运行时通过代理完成面试口诀切面 切入点 通知。切入点决定在哪里切入通知决定切入后做什么。连接点 vs 切入点最容易混淆连接点程序中所有可以被拦截的点所有方法是客观存在的切入点你实际选中的那些连接点是主观选择的所有方法 连接点全集 你选中的方法 切入点子集三、五种通知类型通知注解执行时机用途前置通知Before目标方法执行前参数校验、权限检查后置通知AfterReturning目标方法正常返回后日志记录环绕通知Around包裹目标方法执行事务管理、性能监控异常通知AfterThrowing目标方法抛出异常后异常处理、告警最终通知After目标方法执行后无论是否异常资源清理类似 finally执行顺序正常执行流程 Around 前半 → Before → 目标方法 → Around 后半 → AfterReturning → After 异常执行流程 Around 前半 → Before → 目标方法抛异常→ AfterThrowing → After注意After类似于finally无论正常返回还是异常都会执行。AfterReturning只在正常返回时执行。Around 为什么最强大Around(pointcut())publicObjectaround(ProceedingJoinPointpjp)throwsThrowable{// 前置逻辑longstartSystem.currentTimeMillis();// 可以决定是否执行目标方法调不调 proceed()Objectresultpjp.proceed();// 不调用则目标方法不执行// 后置逻辑longcostSystem.currentTimeMillis()-start;System.out.println(耗时: costms);// 甚至可以修改返回值returnresult;}Around能做的事✅ 控制目标方法是否执行不调proceed()就行✅ 修改入参✅ 修改返回值✅ 捕获异常不让它传播其他四种通知做不到这些。四、Spring AOP 完整执行流程客户端调用 proxy.method() ↓ 代理对象拦截方法调用 ↓ 根据 Pointcut 匹配这个方法需要被增强吗 ├── 是 → 按通知类型执行增强逻辑 │ ├── Before │ ├── 目标方法 │ ├── AfterReturning / AfterThrowing │ └── After └── 否 → 直接调用目标对象的方法五、思维导图速览Spring AOP ├── 核心思想 │ ├── 横向抽取公共逻辑日志、事务、权限 │ ├── 不修改源代码运行时织入 │ └── 底层 动态代理下篇详解 │ ├── 7 个核心术语 │ ├── Aspect切面 Pointcut Advice │ ├── JoinPoint连接点 所有可拦截的点 │ ├── Pointcut切入点 你选中的连接点 │ ├── Advice通知 切入后做什么 │ ├── Target / Proxy / Weaving │ └── 关键区分连接点全集vs 切入点子集 │ ├── 五种通知 │ ├── Before前置 │ ├── AfterReturning后置 │ ├── Around环绕← 最强大控制执行流 │ ├── AfterThrowing异常 │ └── After最终类似 finally │ └── 执行顺序 ├── 正常Around前 → Before → 方法 → Around后 → AfterReturning → After └── 异常Around前 → Before → 方法抛异常 → AfterThrowing → After六、写在最后面试回答模板“AOP 是面向切面编程把散落在各处的公共逻辑统一抽取管理。核心概念有 7 个最重要的是切面 切入点 通知。切入点决定在哪里切入通知决定切入后做什么。通知有五种Around 最强大可以控制目标方法是否执行、修改入参和返回值。AOP 底层通过动态代理实现运行时生成代理对象。”学习建议7 个术语重点区分连接点 vs 切入点面试常考五种通知记住执行顺序理解 Around 为什么最强

相关新闻

Dante Cloud蓝绿部署:零downtime的服务更新方案

Dante Cloud蓝绿部署:零downtime的服务更新方案

Dante Cloud蓝绿部署:零downtime的服务更新方案 【免费下载链接】dante-cloud 🐉 Dante Cloud 国内首个支持阻塞式和响应式服务并行的微服务云原生基座。采用领域驱动模型(DDD)设计思想,以「高质量代码、低安全漏洞」为核心,高度模…

2026/7/18 16:21:44阅读更多 →
奔赴少年CIIU携首张迷你专辑高调回归 开启C-Tro Pop音乐新篇章

奔赴少年CIIU携首张迷你专辑高调回归 开启C-Tro Pop音乐新篇章

日前,泛领文化旗下新生代男子组合奔赴少年CIIU正式公开首张迷你专辑《Closer to You(靠近你)》的概念视频,同步上线专辑收录新曲《一步一步》,高调拉开了组合回归的序幕。 专辑向大众展示了专属于奔赴少年CIIU的音乐风…

2026/7/18 16:21:44阅读更多 →
2026年下半年量化工具评估,分阶段设置检查标准

2026年下半年量化工具评估,分阶段设置检查标准

在既有策略体系中评估新工具时,最容易出现的误区是把工具价值看成一个总分。可是策略流程本身由多个阶段组成,每个阶段面对的风险、假设和检查重点都不同。工具是否有增量,往往要看它在具体阶段中解决了什么。工具要跟着当前任务走一个阶段可…

2026/7/18 16:21:44阅读更多 →
关于单片机抓取覆盖率的一次尝试

关于单片机抓取覆盖率的一次尝试

前言 数年前有一个项目,当时使用了gcov抓取了用户态代码的覆盖率。我认为是一个很好的工具和方法。 如果有代码不能运行到,要么就是测试用例不充分,要么就是代码是冗余无效的代码。 做了几年嵌入式了,用户态可以借助linux系统的机…

2026/7/18 17:21:49阅读更多 →
多模态大模型从入门到实战:CLIP、BLIP-2、LLaVA 图文理解技术演进(2026)

多模态大模型从入门到实战:CLIP、BLIP-2、LLaVA 图文理解技术演进(2026)

多模态大模型从入门到实战:CLIP、BLIP-2、LLaVA 图文理解技术演进(2026) 摘要 多模态大模型是 2024-2026 年 AI 领域最具突破性的方向之一。本文系统梳理从 CLIP 的图文对比学习到 LLaVA 的多模态对话完整技术演进路径,深入分析对…

2026/7/18 17:21:49阅读更多 →
哪家IP定位服务精度更高?从城市级到街道级的选型指南

哪家IP定位服务精度更高?从城市级到街道级的选型指南

IP定位的精度没有统一的答案,因为不同的业务场景对精度的要求都不同。一个做网站统计的团队,城市级定位就够了;一个做本地生活推荐的App,需要区县级;一个做金融反欺诈的系统,可能需要街道级。选择哪家服务商…

2026/7/18 17:21:49阅读更多 →
“一发一收”还是“自发自收”?搞懂换能器正对关系,测量才精准

“一发一收”还是“自发自收”?搞懂换能器正对关系,测量才精准

换能器装好了,信号怎么还是不稳?”在售后支持中,我们发现不少现场信号异常的问题,根源都指向同一个安装误区——忽略了收发换能器的正对关系。 针对大家常问的“换能器接收和发射要正对吗”,大禹电子表示:如果您采用的…

2026/7/18 17:21:49阅读更多 →
AI逻辑推理能力实测:从故事理解看大语言模型的深层分析技术

AI逻辑推理能力实测:从故事理解看大语言模型的深层分析技术

最近在技术社区看到不少讨论,说现在的AI模型在处理复杂逻辑推理时表现不佳。但实际情况真的是这样吗?今天我们就来实测一个典型的逻辑推理场景——通过一个看似简单的家庭矛盾故事,来检验当前主流AI模型的推理能力。这个故事表面上是"少…

2026/7/18 17:21:49阅读更多 →
# 餐饮老板避坑指南:3家靠谱油水分离器服务商实测,附选型实操攻略开餐饮店的老板都懂,油水分离器是后厨的“刚需装备”—

# 餐饮老板避坑指南:3家靠谱油水分离器服务商实测,附选型实操攻略开餐饮店的老板都懂,油水分离器是后厨的“刚需装备”—

开餐饮店的老板都懂,油水分离器是后厨的“刚需装备”——既关乎环保合规,又能避免下水道堵塞、异味扰民。但选服务商却成了不少人的头疼事:怕选到资质不全的过不了环保检查,怕售后跟不上耽误营业,怕设备不合用白花钱。…

2026/7/18 17:19:48阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/18 10:49:13阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/18 8:49:08阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/18 14:49:24阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →