浅谈springAOP

来源:互联网 发布:萍乡教育网网络管理 编辑:程序博客网 时间:2024/05/17 05:57
最近学习了spring框架,对AOP的理解有些模糊,现在做一个简单的整理,作为笔记。AOP的概念:面向切面编程。与OOP不同的是,他关注横向的关系,比如几个方法里面有相同的代码,然而中间核心处理的部分却不一样,这种散布在各处的无关的代码被称为横切(cross cutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。AOP技术:剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面.

AOP几个概念(我自己的理解):
1关注点:不同的方法中,重复执行的代码。
2切面:从业务方法中抽离的关注点形成的类。
3切入点:需要动态织入关注点
4连接点:切入点骗人配的地方。
从百度上看到的:
AOP核心概念

1、横切关注点

对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点

2、切面(aspect)

类是对物体特征的抽象,切面就是对横切关注点的抽象

3、连接点(joinpoint)

被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器

4、切入点(pointcut)

对连接点进行拦截的定义

5、通知(advice)

所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类

6、目标对象

代理的目标对象

7、织入(weave)

将切面应用到目标对象并导致代理对象创建的过程

8、引入(introduction)

在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段

Spring对AOP的支持:spring用IoC容器负责生成AOP代理,其依赖关系也由IOC容器负责管理。因此,AOP代理可以直接使用容器中的其它bean实例作为目标,这种关系可由IoC容器的依赖注入提供.

可以具体的看看这篇博客举的代码实例:http://www.cnblogs.com/hongwz/p/5764917.html