8 -- 深入使用Spring -- 4...3 AOP的基本概念
8.4.3 AOP的基本概念
AOP从程序运行角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中各个步骤,希望以更更好的方式来组合业务处理的各个步骤。
AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定的切入点(Pointcut),而不与某个具体类耦合。
AOP框架具有如下两个特征:
⊙ 各步骤之间的良好隔离性。
⊙ 源代码无关性。
面向切面编程的术语:
⊙ 切面(Aspect) : 切面用于组织多个Advice,Advice放在切面中定义。或者说定义PointCut和Advice的类就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对象间横向的关系。使用@Aspect注解声明类是一个切面类。
⊙ 连接点(Joinpoint) : 程序执行过程中明确的点,如方法的调用,或者异常的抛出。在Spring AOP中,连接点总是方法的调用。
⊙ 增强处理(Advice) : AOP框架在特定的切入点执行的增强处理。处理有“around”、“before”、和“after”等类型。
⊙ 切入点(Pointcut) : 可以插入增强处理的连接点。简而言之,当某个连接点满足指定要求值,该连接点将被添加增强处理,该连接点也就变成了切入点。如:pointcut xxxPointcut() : execution(void H*.say*()) 每个方法被调用都只是连接点,但如果该方法属于H开头的类,且方法名以say开头,则该方法的执行将变成切入点。Spring默认使用AspectJ切入点语法。
⊙ 引入 : 将方法或字段添加到被处理得类中。Spring允许将新的接口引入到任何被处理的对象中。如:可以使用一个引入,是任何对象实现IsModified接口,以此来简化缓存。
⊙ 目标对象 : 被AOP框架进行增强处理的对象,也别称为被增强的对象。如果AOP框架采用的是动态AOP实现,那么该对象就是一个被代理的对象。
⊙ AOP代理 : AOP框架创建的对象,简单地说,代理就是对目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是cglib代理。前者为实现接口的目标对象的代理,后者为不实现接口的目标对象的代理。
⊙ 织入(Weaving) : 织入有两种实现方式------编译时增强(如AspectJ)和运行时增强(如Spring AOP)。Spring和其他纯Java AOP框架一样,在运行时完成织入。
AOP代理就是有AOP框架动态生成的一个对象,该对象可作为目标对象使用。AOP代理包含了目标对象的全部方法,但AOP代理中的方法与目标对象的方法存在差异------AOP方法在特定切入点添加了增强处理,并回调了目标对象的方法。
啦啦啦
8 -- 深入使用Spring -- 4...3 AOP的基本概念的更多相关文章
- Spring学习之Aop的基本概念
转自:http://my.oschina.net/itblog/blog/209067 AOP的基本概念 AOP从运行的角度考虑程序的流程,提取业务处理过程的切面.AOP面向的是程序运行中的各个步骤, ...
- Spring 3.0 AOP (一)AOP 术语
关于AOP.之前我已写过一个系列的随笔: <自己实现简单的AOP>,它的关注点在于实现.实现语言是C#,实现方式为 自定义实现 RealProxy 抽象类.重写Invoke方法,以便进行方 ...
- Spring系列之AOP实现的两种方式
AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ). 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行 ...
- springMVC+MyBatis+Spring 整合(4) ---解决Spring MVC 对AOP不起作用的问题
解决Spring MVC 对AOP不起作用的问题 分类: SpringMVC3x+Spring3x+MyBatis3x myibaits spring J2EE2013-11-21 11:22 640 ...
- 【转】spring - ioc和aop
[转]spring - ioc和aop 1.程序中为什么会用到spring的ioc和aop 2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题 3.原理 关于1: a:我们平常使用对 ...
- Spring核心框架 - AOP的起源及介绍
一.AOP技术起源 AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析.他们研究出了一 ...
- Spring核心框架 - AOP的原理及源码解析
一.AOP的体系结构 如下图所示:(引自AOP联盟) 层次3语言和开发环境:基础是指待增加对象或者目标对象:切面通常包括对于基础的增加应用:配置是指AOP体系中提供的配置环境或者编织配置,通过该配置A ...
- Spring中的AOP
什么是AOP? (以下内容来自百度百科) 面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种 ...
- Spring AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)
1.我所知道的AOP 初看起来,上来就是一大堆的术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下让你不知所措,心想着:管不得很多人都和我说AOP多难多难.当我看进去以后, ...
随机推荐
- jQuery(十一):jQuery的事件
一.jQuery事件的分类 jQuery事件是对JavaScript事件的封装,常用事件分类如下: 1.基础事件 window事件. 鼠标事件. 键盘事件. 表单事件. 2.复合事件是多个事件的组合 ...
- SSM Spring +SpringMVC+Mybatis 整合配置 及pom.xml
SSM Spring +SpringMVC+Mybatis 配置 及pom.xml SSM框架(spring+springMVC+Mybatis) pom.xml文件 maven下的ssm整合配置步骤
- easyui使用介绍
http://www.jeasyui.com/index.php based on jQuery, Angular and Vue. don't need to write many javascri ...
- PHP中“==”运算符的安全问题
前言 PHP是一种通用的开源脚本语言,它的语法混合了C,Java,以及Perl等优秀语言的语法.除此之外,它还提供了大量的函数库可供开发人员使用.但是,如果使用不当,PHP也会给应用程序带来非常大的安 ...
- I/O模型(同步、非同步、阻塞、非阻塞)总结
I/O:同步(synchronous).异步(asynchronous).阻塞(blocking).非阻塞(nonblocking) 1.I/O内部机制 出于安全考虑,用户程序(用户态)是没办法直接操 ...
- Qt判断操作系统代码
Qt4的时候是如下宏定义.Qt5,有所不同. #include <QtGlobal> ... #ifdef Q_OS_MAC // mac #endif #ifdef Q_OS_LIN ...
- ssh 中 远程文件传输
scp 命令是 SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用 scp 一个命令就完全解决了. 你可以在一台服务器上 以 root 身份运行 #scp servername: ...
- chrome误删了bookmarks且已经同步清空了google云端的挽救方式
收藏夹里被误删文件恢复步骤:1.快捷键 Win+R 输入 Chrome 的用户数据路径:Windows XP:%USERPROFILE%\Local Settings\Application Data ...
- Cocos2d-x绘制圆角矩形
/* * @brief 画圆角矩形 * @param origin 矩形开始点 * @param destination 矩形结束点 * @param radius 圆角半径 * @param seg ...
- Ogre2.1 结合OpenGL3+高效渲染
在DX10与OpenGL3+之前,二者都是固定管线与可编程管线的混合,其中对应Ogre1.x的版本,也是结合固定与可编程管线设计.转眼到了OpenGL3+与DX10后,固定管线都被移除了,相对应着色器 ...