首页 > 代码库 > Spring---AOP术语

Spring---AOP术语

  • 通知(Advice):定义了什么是切面以及切面何时使用。

  • 连接点(Joinpoint):在程序执行过程中,切面能够插入程序的所有的点。
  • 切入点(Pointcut):切入点就是一个或多个连接点,连接点的子集。定义了切面何地进行。
  • 切面(Aspect):通知和切入点的集合。
  • 引入(Introduction):“引入”允许我们向现有的类添加新方法或属性。
  • 目标(Target):被通知的对象。
  • 代理(Proxy):“代理”是向目标对象被应用通知之后创建的对象。对于客户对象来说,目标对象(AOP之前)和代理对象(AOP之后)是一样的。
  • 织入(Weaving):“织入”是把切面应用到目标对象之后创建代理对象的过程。切面在指定连接点织入到目标对象,在目标对象的生命周期里有多个时机可以发生织入过程:

                                        编译时:切面在目标类编译时被织入,这需要特殊的编译器,AspectJ的织入编译器就以这种方式织入切面。

                                        类加载时:切面在目标类加载到JVM时被织入。

                                        运行时:切面在程序运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会动态创建一个代理对象来委托给目标对象。这就是SpringAOP                                                      织入切面的方式。

Spring对AOP的支持:

  •  经典的基于代理的AOP(各版本Spring)
  • @AspectJ注解驱动的切面(仅Spring2.0)
  • 纯POJO切面(仅Spring2.0)
  • 注入式AspectJ(各版本Spring)

前三种都是基于代理的AOP变体。因此,Spring对AOP的支持局限于方法注入。

Spring的AOP框架的几个关键点:

  • Spring通知是用Java编写的
  • Spring只支持方法连接点。
  • Spring在运行时通知对象。

Spring---AOP术语