一、AOP简介
AOP为Aspect-Oriented Programming的简写,译为面向切面的程序设计。我们知道OOP是面向对象程序设计,就是将实体的属性、行为进行封装起来,是对象的操作。而AOP与之不同,AOP是对对象中的方法执行请后做一些服务操作,比如你在调用某个的某方法前,添加了打印日志操作,而这些操作和并不存在这对象中,这些打印日志操作和这个对象中被调用的方法组合就叫切面,而服务(打印日志)叫通知,和通知组合的这个方法(配调用的方法)叫切点,这就是AOP,面向切面的程序设计。
二、AOP常用的术语解释
- aspect 切面,就是把服务(通知)放进去的载体(其实就是服务+目标方法)。
- advice :通知,就是加入的服务,通知的类型有四种:
-
before :前置通知,在目标方法执行之前,一般用得比较多。
-
after :后置通知,一般用于数据库的操作
-
around :环绕通知
-
throw :异常通知
3.joinpoint:连接点,,目标对象的方法,可以通过连接点对象,可以获取目标对象的信息,只能提取,不能设置。
4.pointcut:切入点,与通知一起形成切面目标对象的方法,切入点首先得是连接点。
6.target:目标对象,被加入通知服务的对象。
7.weaving:织入,就是把通知加到目标对象后形成切面的方式。三、AOP配置方式
SPringAOP一般采用的动态代理方式去实现,有jdk动态代理和cglib动态代理。AOP配置方式有两种,一种是声明式配置,另外一种是编程式配置方式。
(一)、AOP声明式配置
AOP声明式配置是在Spring容器文件中配置,用到了的是ProxyFactorBean类。声明式配置方式有基础配置、AOP低耦合处理配置、Anotation配置这三种方式,一般采用Anotation配置。三种具体配置方式请阅读文章《AOP动态代理声明式的3种配置方式过程与区别》。
(二)、AOP编程式配置
AOP编程式配置完全由代码来进行控制,与声明式配置不同,编程式用到的代理工厂是ProxyFactory类。