【目录】
1 什么是AOP
2 Spring AOP编程两种方式
3 Spring AOP编程代理两种方式
4 Spring AOP编程相关术语
5 Spring AOP配置
1 什么是AOP ?
AOP (Aspect Oriented Programing) 称为:面向切面编程,OOP(面向对象编程)思想的延续 。
AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存,日志记录等)。简单来说,就是基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强 。
2 Spring AOP编程两种方式
简单的说,Spring内部支持两套AOP编程的方案:
- Spring 1.2 开始支持AOP编程 (传统SpringAOP编程),编程比较复杂,了解即可 。
- Spring 2.0 之后支持第三方 AOP框架(AspectJ ),实现另一种 AOP编程——推荐使用。
3 Spring AOP编程代理两种方式
Spring AOP是基于动态代理的——优先选用JDKProxy动态代理;
- Proxy动态代理:被代理的对象必须要实现接口;
- Cglib动态代理:被代理的对象不能被final修饰,基于继承。
4 Spring AOP编程相关术语
以代理小学生写暑假作业为例:
简单说切面就是需要代理一些方法和增强代码 。
5 Spring AOP配置
开发方法:
确定目标(bean)——编写通知——配置切点切面
具体为:
a) 导包:
i. 基本包;
ii. spring-aspects和spring-aop ;
iii. aop联盟包 – aopalliance;
iv. aop织入包 - aspectj.weaver;
b) 自定义通知,五种自定义通知类型:
i. before 前置通知
ii. after 最终通知(后置通知)
iii. afterReturning 成功通知(后置通知)
iv. afterThrowing 异常通知(后置通知)
v. around 环绕通知
c) 配置applicationContext.xml。
注:部分内容来自SiKi学院。