Aop学习笔记
在学习编程这段时间我想大家都是习惯了面向过程或者面向对象的思想来编程,较少或者没有接触过面向方面编程的思想。 那么什么是面向方面(Aspect)——其实就是与核心业务处理逻辑无关的切面,例如记录日志、事务控制、缓存处理、权限控制等。 这些行为与商业核心业务逻辑是毫无关系的也就是可以完全剥离出来形成一个统一的解决方案,其实这就是Aop的核心思想。接下 来讲解关于微软提供的Unity组件中的AOP。 一、AOP中的几个概念 1):切面(Aspect):对横切性关注点的抽象,说白了就是对某种功能的抽象,日志、事务、权限等都是一个切面; 2):连接点(Joinpoint):在核心业务逻辑中可以进行切入的点,可以理解为切入点的集合(商业逻辑中可能要切入日志、权限、事务等,这些就是连接点); 3):切入点(Pointcut):指对连接点进行拦截的定义,切入点决定了Advice需要切入的具体连接点,Advice->Pointcut->Joinpoint; 4):通知(Advice):拦截到连接点之后所要做的事情(前置通知、返回后通知、环绕通知、抛出异常后通知等); 5):目标对象(Target Object):需要代理的目标对象,目标对象本身只剩下了干净的业务代码,日志、权限等功能需要AOP切入; 6):代理对象(Proxy Object) : 通过AOP容器产生的对象,是由Target