zoukankan      html  css  js  c++  java
  • 8 -- 深入使用Spring -- 4...3 AOP的基本概念

          8.4.3 AOP的基本概念

            AOP从程序运行角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中各个步骤,希望以更更好的方式来组合业务处理的各个步骤。

            AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定的切入点(Pointcut),而不与某个具体类耦合。

            AOP框架具有如下两个特征:

              ⊙ 各步骤之间的良好隔离性。

              ⊙ 源代码无关性。

            面向切面编程的术语:

              ⊙ 切面(Aspect) : 切面用于组织多个Advice,Advice放在切面中定义。或者说定义PointCut和Advice的类就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。使用@Aspect注解声明类是一个切面类。

              ⊙ 连接点(Joinpoint) : 程序执行过程中明确的点,如方法的调用,或者异常的抛出。在Spring AOP中,连接点总是方法的调用。

              ⊙ 增强处理(Advice) : AOP框架在特定的切入点执行的增强处理。处理有“around”、“before”、和“after”等类型。

              ⊙ 切入点(Pointcut) : 可以插入增强处理的连接点。简而言之,当某个连接点满足指定要求值,该连接点将被添加增强处理,该连接点也就变成了切入点。如:pointcut xxxPointcut() : execution(void H*.say*()) 每个方法被调用都只是连接点,但如果该方法属于H开头的类,且方法名以say开头,则该方法的执行将变成切入点。Spring默认使用AspectJ切入点语法。

              ⊙ 引入 : 将方法或字段添加到被处理得类中。Spring允许将新的接口引入到任何被处理的对象中。如:可以使用一个引入,是任何对象实现IsModified接口,以此来简化缓存。

              ⊙ 目标对象 : 被AOP框架进行增强处理的对象,也别称为被增强的对象。如果AOP框架采用的是动态AOP实现,那么该对象就是一个被代理的对象。

              ⊙ AOP代理 : AOP框架创建的对象,简单地说,代理就是对目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是cglib代理。前者为实现接口的目标对象的代理,后者为不实现接口的目标对象的代理。

              ⊙ 织入(Weaving) : 织入有两种实现方式------编译时增强(如AspectJ)和运行时增强(如Spring AOP)。Spring和其他纯Java AOP框架一样,在运行时完成织入。

            AOP代理就是有AOP框架动态生成的一个对象,该对象可作为目标对象使用。AOP代理包含了目标对象的全部方法,但AOP代理中的方法与目标对象的方法存在差异------AOP方法在特定切入点添加了增强处理,并回调了目标对象的方法。

    啦啦啦

  • 相关阅读:
    今天开始记录我所经历
    第一次作业
    OJ练习
    svn 有效代码统计
    关于TDD的思考
    BFS
    001 Phone Numbers
    使用statsvn统计svn中的代码量
    ContinueWhenAll 实现线程的多重依赖
    小组计划
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6403572.html
Copyright © 2011-2022 走看看