AOP = 我们要在一些方法执行前/执行后/抛出异常时进行一些额外的操作。
为了完成这件事情,需要告诉程序: 1.What? 哪些方法需要进行额外的操作。 2.How? 什么时候进行额外操作?额外操作要做什么? AOP有一堆令人晦涩的术语,下面按照以上两步来进行解释: 第一步: 我们通过定义一个表达式(Pointcut)来告诉程序,我们需要对那些方法增加额外的操作。 通过这个表达式(Pointcut),我们得到了那些需要增强的方法(Joinpoint)。 第二步: 我们需要告诉程序:这些方法(Joinpoint)需要做怎样的增强(Advice): 1.什么时候进行额外操作?(执行前/执行后/抛出异常时)。 2.额外操作要做什么? 我们把两个步骤定义到一个地方(Aspect). 这两个步骤涉及到的被修改对象我们叫做(Target Object). 完成以上操作的动作我们叫做(Weaving) 下面总结一下: 需要我们关心的: Pointcut: 一个表达式,用来找出需要被增强的方法。 Advice: 这个方法要如何被增强。 概念性的: Joinpoint: 通过Pointcut找出来的结果。 Aspect: 整个AOP规则的定义。 Target Object: 被修改了的Objects。 Weaving: 执行AOP的过程。 我想这可以帮助初学者理解AOP,当然,我也是初学者,说的不对的地方,欢迎拍砖 |
|