spring aop 学习笔记(一)

AOP是什么

AOP是 Aspect Oriented Programing 的简称,普遍翻译为“面向方面编程”,但是“面向切面编程”更为合理。
当我们的代码无法通过抽象来消除重复性的横切代码时,aop为此提供了解决方案。

  • 连接点(JoinPoint)
    • 程序执行的某个特定位置,如类初始化前,初始化后,方法调用前后,抛出异常等。一个类或一段程序代码用友一些具有边界性质的特定点,这些代码中的特定点就叫做连接点。
  • 切点(PointCut)
    • 每个程序类有多个连接点,在众多连接点中,如何定位感兴趣的连接点就需要切点。可以把一个切点看作是定位一组有相同特征连接点的方法。
  • 增强(Advice)
    • 增强是为目标类织入一段程序代码。
  • 目标对象(target)
    • 增强代码织入的目标
  • 引介(Introduction)
    • 引介是一种特殊的增强,为类添加一些属性和方法。比如动态的添加接口和实现逻辑
  • 织入(Weaving)
    • 织入是将增强添加到目标类的具体过程
      • 编译期织入,需要特殊的java编译器
      • 类装载期织入,需要特殊的类装载器(LTW load time weaving)
      • 动态代理织入(Jdk的动态代理,cglib的动态代理)Spring使用的是动态代理织入,AspectJ使用的是编译期织入和类装载期织入
  • 代理(Proxy)
    • 一个类被aop织入增强后的结果类,融合了原类方法的逻辑和增强逻辑
  • 切面(Aspect)
    • 切面是由切点和增强组成的,包括横切逻辑的定义和连接点的定义

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值