Fork me on GitHub

spring AOP

存在的意义

面向对象编程( OOP )有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程序就不便于维护了,所以就有了一个对面向对象编程的补充,即面向方面编程( AOP ), AOP 所关注的方向是横向的,不同于OOP 的纵向。

专有名词
  1. 通知Advice:你想要的功能,也就是上说的安全、事物、日子等。你给先定义好,然后再想用的地方用一下 ;
  2. 连接点JoinPoint:spring允许你是通知(Advice)的地方,那可就真多了,基本每个方法的钱、后(两者都有也行),或抛出异常是时都可以是连接点,spring只支持方法连接点 ;
  3. 切入点PoinCut:你并不想在所有方法附件都使用通知(使用叫织入,下面再说),你只是想让其中几个,在调用这几个方法之前、之后或者抛出异常时干点什么,那么就用切入点来定义这几个方法,让切点来筛选连接点,选中那几个你想要的方法 ;
  4. 切面Aspect:通知和切入点的结合 ,通知说明了干什么和什么时候干(什么时候通过方法名中的befor,after,around等就能知道),二切入点说明了在哪干(指定到底是哪个方法),这就是一个完整的切面定义 ;
  5. 织入Weaving:切面应用到目标对象来创建新的代理对象的过程 。
常用的AOP

AspectJJBossAOPSpringAOP

-------------本文结束感谢您的阅读-------------