1 / 27
文档名称:

第20章 Spring的AOP.ppt

格式:ppt   页数:27
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第20章 Spring的AOP.ppt

上传人:中国课件站 2011/11/16 文件大小:0 KB

下载得到文件列表

第20章 Spring的AOP.ppt

文档介绍

文档介绍:第20章 Spring的AOP
IoC以外Spring的另一个关键的组件就是AOP框架。尽管如此,Spring IoC容器并不依赖于AOP,这意味着可以自由选择是否使用AOP,AOP提供强大的中间件解决方案,这使得Spring IoC容器更加完善。
Spring AOP简介
面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。(这些关注点术语通常称作横切(crosscutting)关注点。)
AOP的概念
AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。
AOP的术语
首先从定义一些重要的AOP概念开始。这些术语不是Spring特有的。不幸的是,Spring术语并不是特别的直观;如果Spring使用自己的术语,将会变得更加令人困惑。
切面(Aspect): 连接点(Joinpoint):
通知(Advice): 切入点(Pointcut):
引入(Introduction): 目标对象(Target Object):
AOP代理(AOP Proxy):
Spring的AOP有何特点
Spring ,用户可以选择使用基于模式(schema-based)的方式或者使用***@AspectJ注解。这两种风格都完全支持通知(Advice)类型和AspectJ的切入点语言,虽然实际上仍然使用Spring AOP进行织入(Weaving)。这也是Spring推荐的做法,本书将重点介绍这种方法。
Spring缺省使用J2SE动态代理(dynamic proxies)来作为AOP的代理。这样任何接口都可以被代理(本书前面Spring入门一章就是采用这种方法)。
Spring AOP的功能和目标
Spring AOP用纯Java实现。它不需要专门的编译过程。Spring AOP不需要控制类装载器层次,因此它适用于J2EE web容器或应用服务器。
Spring目前仅支持使用方法调用作为连接点(join point)(在Spring bean上通知方法的执行)。虽然可以在不影响到Spring AOP核心API的情况下加入对成员变量拦截器支持,但Spring并没有实现成员变量拦截器。
***@AspectJ配置AOP
在Spring AOP,它变得更加便于使用而且更加强大,主要是通过复杂而成熟的AspectJ语言的支持功能来实现,而同时保留纯的基于代理的Java运行时。
"***@AspectJ"使用了Java 5的注解,可以将切面声明为普通的Java类。AspectJ 5发布的 AspectJ project 中引入了这种***@AspectJ风格。 Spring 使用了和AspectJ 5一样的注解,使用了AspectJ 提供的一个库来做切点(pointcut)解析和匹配。但是,AOP在运行时仍旧是纯的Spring AOP,并不依赖于AspectJ 的编译器或者织入器(weaver)。
启用***@AspectJ支持
为了在Spring配置中使用***@AspectJ aspects,必须首先启用Spring对基于***@AspectJ aspects的配置支持,自动代理(autoproxying)基于通知是否来自这些切面。自动代理是指Spring会判断一个bean是否使用了一个或多个切面通知,并据此自动生成相应的代理以拦截其方法调用,并且确认通知是否如期进行。
声明一个切面
在启用***@AspectJ支持的情况下,在application context中定义的任意带有一个***@Aspect切面(拥有***@Aspect注解)的bean都将被Spring自动识别并用于配置在

最近更新

2024年安徽广播影视职业技术学院单招综合素质.. 39页

经销商数字化转型路径分析 35页

2024年安徽机电职业技术学院单招职业倾向性考.. 40页

2024年安徽水利水电职业技术学院单招综合素质.. 40页

2026年以钓鱼的启示为话题五年级优秀作文 4页

2024年安徽电子信息职业技术学院单招职业技能.. 40页

2024年安徽省宣城市单招职业倾向性测试题库最.. 38页

2024年安徽省池州市单招职业倾向性测试题库附.. 41页

风电场环境适应性-第1篇 36页

肿瘤诊疗一体化 35页

2026年以爱心传递为话题的议论文 6页

2026年以梦想为主题的班会活动设计方案 32页

2026年以我好烦恼话题作文 7页

2026年以思想旗帜为主题的心得总结 14页

2026年以家乡为话题的高考作文怎么写 6页

2026年以可爱的小猫为题的作文 6页

2026年以专注为话题作文800字 8页

2026年代表作经典英文诗歌双语 9页

规则冲突检测与处理 37页

肝硬化疾病进程AI预测 37页

高精度加速计设计 35页

高精度测量设备创新 40页

网络切片技术应用-第7篇 38页

2024年安徽省黄山市单招职业倾向性测试模拟测.. 41页

2024年安徽粮食工程职业学院单招职业技能考试.. 39页

2024年安徽艺术职业学院单招综合素质考试题库.. 39页

2024年安徽财贸职业学院单招职业技能测试题库.. 40页

2024年安徽马钢技师学院单招职业适应性测试模.. 40页

2024年安顺职业技术学院单招职业倾向性测试题.. 39页

2024年宜宾职业技术学院单招职业适应性测试题.. 40页