看到很多书上对aop的术语做了很多定义,但是感觉都看不懂,之前无意中看到一个视频讲解,说的挺通俗易懂的,记录下来,跟大家分享。

  1、横切性关注点(Cross cutting concerns)

  系统正常运行中有很多处理是跟实际业务处理毫不相关的,例如日志操作(logPrint)、事物处理、安全性检查(securityCheck),因为日志输出不输出、安全性检查做不做都不会影响正常的业务处理,所以这些跟实际业务处理不相关的操作就称为横切性关注问题,即横切性关注点--------cross cutting concerns

 2、切面(Aspect)

    将横切性问题进行模块化就成为了切面,如上述的检查安全性,如果进行模块化后包含到一个类中(SecurityHandler)那么这个类就是Aspect。

3、通知(advice)

  横切性问题模块化后就存在了切面,切面中的特定处理方法就为通知,如SecurityHandler类中的securityCheck方法就为一个通知,一个切面中可以有n(n>=1)个通知。

4、连接点(join point)

  需要应用横切性关注问题的地方如方法,属性,构造方法等,如Manager类的add方法在执行之前需要执行安全性检查和日志文件输出,那么这个add方法就为一个joinPoint,一个处理类可以有多个joinPoint

5、切点(point cut)

  point cut表示Aspect能应用到哪些Join point上 表达式(public * *(..))表示任意公共方法的执行;(* set*(..)) 表示任何一个以“set”开始的方法的执行。

6、织入(Weave)

  把Aspect应用到目标对象的过程叫织入。

 

Aop术语详解_切面术语