- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、AOP 概念 Joinpoint:它定义在哪里加入你的逻辑功能,对于Spring AOP,Jointpoint指的就是Method。 Advice:特定的Jointpoint处运行的代码,对于Spring AOP 来讲,有Before advice、AfterreturningAdvice、ThrowAdvice、AroundAdvice(MethodInteceptor)等。 Pointcut:一组Joinpoint,就是说一个Advice可能在多个地方织入, Aspect:这个我一直迷惑,它实际是Advice和Pointcut的组合,但是Spring AOP 中的Advisor也是这样一个东西,但是Spring中为什么叫Advisor而不叫做Aspect。 Weaving:将Aspect加入到程序代码的过程,对于Spring AOP,由ProxyFactory或者ProxyFactoryBean负责织入动作。 Target:这个很容易理解,就是需要Aspect功能的对象。 Introduction:引入,就是向对象中加入新的属性或方法,一般是一个实例一个引用对象。当然如果不引入属性或者引入的属性做了线程安全性处理或者只读属性,则一个Class一个引用也是可以的(自己理解)。Per-class lifecycle or per-instance life cycle 二、AOP 种类 1、静态织入:指在编译时期就织入Aspect代码,AspectJ好像是这样做的。 2、动态织入:在运行时期织入,Spring AOP属于动态织入,动态织入又分静动两种,静则指织入过程只在第一次调用时执行;动则指根据代码动态运行的中间状态来决定如何操作,每次调用Target的时候都执行(性能较差)。 三、Spring AOP 代理原理 Spring AOP 是使用代理来完成的,Spring 会使用下面两种方式的其中一种来创建代理: 1、JDK动态代理,特点只能代理接口,性能相对较差,需要设定一组代理接口。 2、CGLIB 代理,可代理接口和类(final method除外),性能较高(生成字节码)。 四、Spring AOP 通知类型 1、BeforeAdvice:前置通知需实现MethodBeforeAdvice,但是该接口的Parent是BeforeAdvice,致于什么用处我想可能是扩展性需求的设计吧。或者Spring未来也并不局限于Method的JoinPoint(胡乱猜测)。BeforeAdvice可以修改目标的参数,也可以通过抛出异常来阻止目标运行。 2、AfterreturningAdvice:实现AfterreturningAdvice,我们无法修改方法的返回值,但是可以通过抛出异常阻止方法运行。 3、AroundAdvice:Spring 通过实现MethodInterceptor(aopalliance)来实现包围通知,最大特点是可以修改返回值,当然它在方法前后都加入了自己的逻辑代码,因此功能异常强大。通过MethodIceed()来调用目标方法(甚至可以不调用)。 4、ThrowsAdvice:通过实现若干afterThrowing()来实现。 5、IntroductionInterceptor:Spring 的默认实现为DelegatingIntroductionInterceptor 五、Spring AOP Pointcut 以上只是Advice,如果不指定切入点,Spring 则使用所有可能的Jointpoint进行织入(当然如果你在Advice中进行方法检查除外)。因此切入点在AOP中扮演一个十分重要的角色。Spring 2.0 推荐使用AspectJ的Annocation的切入点表达式来定义切入点,或者使用aop:xxx/来定义AOP,这方面本篇不做考虑。 1、Pointcut:它是Spring AOP Pointcut的核心,定义了getClassFilter()和getMethodMatcher()两个方法。 2、ClassFilter:定义了matches(Class cls)一个方法。 3、MethodMatcher() 定义了matches(Method,Class),isRuntime(),matches(Mathod,Class,Object[])三个方法,如果isRuntime()返回true则表示为动态代理(实际是动态代理的动态代理),则调用第三个方法(每访问一次调用一次),否则调用第一个方法(并且只调用一次) 4、Spring AOP 静态切入点的几个实现。 ComposablePointcut
您可能关注的文档
- IE工业工程应用实战培项训班.doc
- win7c变身WiFi热点.doc
- SAR图像相读干斑滤于波算法及评价.doc
- IE工业工程应用与实战技法提升n培训课程大纲.doc
- SAS第6讲 或I描述分析与假设检验.doc
- IE工业工程与提高生产线效率培训(p上海北京广州深圳).doc
- win7f设置wifi热点.docx
- SAS取练习题每及程序答案.doc
- IE工业工程与现场读改善.doc
- IE工业工程与现场管多理方法北京上海深圳广州培训.doc
- 2026年食品添加剂政策法规解读报告及2026年行业合规性报告.docx
- 2025年智慧医疗五年发展:技术应用与行业监管体系报告.docx
- 2025年智能家居投影仪市场深度分析报告.docx
- 美妆小样五年变革:2025年技术革新与营销模式行业报告.docx
- 母婴电商售后服务五年升级与2025年服务评估报告.docx
- 2026年智慧城市交通管理平台报告及未来五至十年拥堵缓解报告.docx
- 2026年3D打印医疗应用报告及未来五至十年生物打印报告.docx
- 2026年无人零售技术报告及未来五至十年零售创新报告.docx
- 2025年新能源行业储能技术突破与市场分析报告.docx
- 2025年自动驾驶技术在智能交通领域报告.docx
最近下载
- 【江苏卷】江苏省苏州市2024-2025学年2025届高三第一学期学业期末质量阳光指标调研卷(1.13-115)历史试卷.pdf VIP
- 白酒行业全球烈酒专题四:白酒出海,破局之道-250918-华创证券.pdf VIP
- 市第一高级中学党委书记2025年度抓基层党建工作报告材料.docx VIP
- 建筑、市政工程见证取样(送检数量).doc VIP
- 人教版二年级数学上册竞赛试题.pdf VIP
- 机动车检测站安全生产事故应急预案 .pdf VIP
- 压裂队技术员年终总结.pptx
- 《机井井管标准》SL154-2013.pdf VIP
- EPS-3125A-DA-GCN[V1.10][955C]备用电源自动投入装置技术说明书.pdf VIP
- 中国非物质文化遗产糖画介绍宣教讲座PPT课件.pptx VIP
原创力文档


文档评论(0)