Spring AOP源码分析

概述

定义

官方定义:Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure.
面向切面编程是对面向对象编程的补充,它提供了另一种关于程序结构的思考方式

关注点

面向对象编程关注的是对象和对象的行为
面向切面编程关注的是多个类的某些方法(横切多个类的一个关注点模块)

涉及概念

  1. Aspect:切面,官方解释 a modularization of a concern that cuts across multiple classes ( 横切多个类的一个关注点模块),简单说就是对类具体行为的关注点集合
  2. Join point:连接点,一个连接点通常代表着一个方法的调用,通过获取连接点,我们可以控制在方法执行前后做一些控制,或是添加一些操作(代理)
  3. Advice:通知,切面在特定连接点上产生的动作,也就是我们要通过AOP实现的操作,类型:环绕通知aroud,前置通知before,后置通知after
  4. Target:目标对象,被一个或多个切面通知的对象,也被称为被通知对象
  5. Proxy Pattern:代理模式(1 控制被访问对象,2 给被访问对象提供额外功能)

具体实现

参考:Spring源码分析-深入浅出AOP(图文分析)

猜你喜欢

转载自blog.csdn.net/zzz19920821/article/details/83588585