AOP的成员介绍

本文内容纲要:AOP的成员介绍

  AOP(Aspect Oriented Programming)面向切面编程,AOP的作用不过多介绍,本文是主要是介绍AOP的成员,是我在复习的时候记录的一些笔记,方便以后查阅方便一些。

  JointPoint(连接点),在系统运行的之前,AOP的功能模块都需要织入到OOP的功能模块上,JointPoint就代表了在哪些执行点上进行织入操作的点。JointPoint可以是类的初始化、方法的调用、方法的执行、方法的调用、字段设置、字段获取、异常处理执行等。下面举例说明:

  

public class JointPointTest

{

private String name;

public JointPointTest()

{

//doSomething

}

public void toDo()

{

//doSomething

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

}

View Code

public class Main

{

public static void main(String[] args)

{

//JointPointTest类见上面代码

     JointPointTest jointPointTest = new JointPointTest();//构造方法执行

jointPointTest.setName("aaa");//字段设置(通过set方法与直接赋值的触发时间是相同的)

jointPointTest.getName();//字段获取

jointPointTest.toDo();//方法调用。方法执行即进入toDo方法的内部,对于同一对象方法的调用要早与方法的执行。

     //异常处理执行,即当某些类型异常抛出的时候,对应的异常处理逻辑执行点。

     //类的初始化, 类的静态类型或者静态块的初始化时点。   

}

}

  **Pointcut(切入点),**简单的理解就是JointPoint的集合。Pointcut代表的是JointPoint的表述方式,当横切逻辑织入到当前系统的时候,需要参照Pointcut规定的JointPoint信息。

    Pointcut的表述方式有很多:

    1.直接指定JointPoint所在方法名称。(一般不用,因为配置较多的情况比较不好表述。)

    2.正则表达式。

    3.使用特定的Pointcut表述语言。例如AspectJ,Spring默认使用的就是AspectJ的Pointcut表述语言。

    Pointcut运算(Pointcut与Pointcut之前还可以进行逻辑运算,这样我们就可以得到我们需要的较为复杂的Pointcut),不同的AOP实现产品不同,所以运算的表达方式不尽相同。

  **Advice(通知),**Advice很好理解就是JointPoint的执行时机。

    可以分为:

      1. 前置通知(before advice):在JointPoint指定位置之前执行。

      2. 后置通知(after advice):在JointPoint指定位置之后执行。分为以下三种:

        1) after return advice :只有当前JointPoint处流程正常结束后才执行after return advice。(即没有异常出现)

        2) after throwing advice :只有当前JointPoint处流程抛出异常时候才执行after throwing advice。

        3) after advie :或许叫after finally advice比较准确,它是不管当前JointPoint是否正常结束都会执行,就像JAVA当中的finally块中的代码一样。

      3. 环绕通知(around advice):可以再JointPoint之前和之后都指定相应的处理流程。

      4. introduction:与其他的通知不同,introduction不是根据JointPoint的执行时机来区分的,而是根据它可以完成的功能而区别其他的advice。

  **Aspect(切面),**是对系统的advice与pointcut进行模块化封装的AOP概念实体。可以包含多个pointcut与advice的相关定义。AspectJ可以使用@AspectJ注解并且结合普通的POJO来声明Aspect。

  上面介绍的就是AOP的基本成员,虽然是自己便于以后查阅,但是同时希望对大家有所帮助。

  

  

本文内容总结:AOP的成员介绍

原文链接:https://www.cnblogs.com/renchunxiao/p/3419606.html

以上是 AOP的成员介绍 的全部内容, 来源链接: utcz.com/z/362978.html

回到顶部