Spring AOP概念Aspect、Advice、JoinPoint、JoinCut与Execution

本文介绍了Spring AOP的基本概念,包括面向切面编程的原理,Aspect(切面)是通过pointcut和advice定位特定连接点并插入代码的组件。Advice(增强)如before、after return、after throwing和around advice在连接点执行,point cut(切点)则是匹配这些连接点的规则。Spring AOP中的连接点总是方法执行,而切点提供了一组规则来决定哪些方法可以被增强。此外,还讨论了目标对象、代理和织入等核心概念。
摘要由CSDN通过智能技术生成

1.什么是 AOP

          面向切面编程

2.Aspect(切面)

aspect 由 pointcount 和 advice 组成, Spring AOP就是负责实施切面的框架, 它将切面所定义的横切逻辑织入到切面所指定的连接点中

AOP的工作重心在于如何将增强织入目标对象的连接点上, 这里包含两个工作:

  • 如何通过 pointcut 和 advice 定位到特定的 joinpoint 上
  • 如何在 advice 中编写切面代码.
  • 可以简单地认为, 使用 @Aspect 注解的类就是切面

3.advice(增强)

由 aspect 添加到特定的 join point(即满足 point cut 规则的 join point) 的一段代码.许多 AOP框架, 包括 Spring AOP, 会将 advice 模拟为一个拦截器(interceptor), 并且在 join point 上维护多个 advice, 进行层层拦截.
例如 HTTP 鉴权的实现, 我们可以为每个使用 RequestMapping 标注的方法织入 advice, 当 HTTP 请求到来时, 首先进入到 advice 代码中, 在这里我们可以分析这个 HTTP 请求是否有相应的权限, 如果有, 则执行 Controller, 如果没有, 则抛出异常. 这里的 advice 就扮演着鉴权拦截器的角色了.

advice 的类型:

before advice, 在 join point 前被执行的 advice. 虽然

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值