SpringAOP:AOP概念

5 篇文章 0 订阅

AOP面向切面编程

经常遇到这样的问题:
我们会写很多重复性代码,这些代码通常与我们的业务没有关系。如我们与数据库交互的Service层,必然会有数据库的连接,业务逻辑,关闭连接。try...catch...finally...
我们可以写成静态方法,但是我们这样依然要每个方法中都调用静态方法,那么能不能不写这些,只关心与数据库交互的业务逻辑。
那就是AOP。面向切面编程。把无关目标的代码(但是不是多余的)放入一个POJO中单独维护,但是又与目标存在某种关系,使得代码更加简洁便于维护。
实际上这个POJO类就是一个切面,也就是面向切面编程喽。
/**********************个人理解,仅供参考**********************/

Advice 通知
Join point 连接点
Pointcut 切入点
Aspect 切面
Introduction 引入
Weaving 织入

  • Advice 通知
    • Before 前置通知
    • After 后置通知(不关心目标方法执行成功或者失败)
    • After-returning 返回通知(目标方法成功返回执行)
    • After-throwing 异常通知
    • Around 环绕通知
  • Join point 连接点
  • Pointcut 切点
  • Aspect 切面
  • Introduction 引入
  • Weaving 织入

Advice 通知
如何调用切面,方法前?方法后?方法返回后?方法抛异常?方法前后?
Join point 连接点
准确地说,AOP可以拦截的每一个点都是一个连接点。
Pointcut 切点
切点就是在所有连接点中筛选出希望使用通知的连接点
Aspect 切面
Join point 连接 Pointcut和Advice,而Aspect则是具体做什么
Instruction引入
不太懂是啥,欢迎补充
Weaving 织入
以什么样的形式实现AOP。当然都是代理方式。
分为:
编译期(Aspect采用方式):编译时期织入[class被改变了]
类加载期(Aspect5):加载到JVM织入[JVM加载class时]
运行期(SpringAOP采用方式):运行时创建一个代理对象[代理对象]
5种通知 Before | After | After-Returning | After-Throwing | Around
前四种可以共同使用,Around可独立使用做到前面四种联合使用效果,更加强大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值