- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]Spring简介3
电子发烧友 电子技术论坛 第 三 章 Spring AOP 什么是AOP 为了理解AOP,请思考如下需求: 角色:上帝,人(每个人都有大脑) 现在上帝希望知道每个人的想法,请用面向对象的方法解决 设计登场角色 上帝,只有一个 设计登场角色 人,好几十亿 设计登场角色 大脑,重要器官,每个人有自己的大脑 解决问题 为了要知道人们的思想,上帝决定用换脑的手段来达到目的 由于人在出生时并不知道自己的大脑是怎么来的(由Spring注入的),因此,可以在他出生时安装另一个大脑 换脑的两种方法 用继承方式 用接口方式 使用继承的方式 使用接口的方式 实际上,只要能“思考”,人类不在意究竟给他的脑袋里装一个大脑还是一个石头(假如石头能思考的话) “大脑”只是一种能够思考的象征 因此,重新审视我们的设计,将大脑变成接口,变成一个抽象的概念 使用接口的方式 优先选择接口而非继承 当需要进行动态代理时,接口比继承更容易实现 接口具有更好的扩展性 问题 上帝不想创建过多的代理对象,仅仅希望实现具体操作 使用Spring提供的办法 刚才的例子里,无论是使用继承还是接口进行换脑,在设计模式里都称为代理模式 请大家区分代理与被代理对象分别是谁 Spring为代理提供了更方便的控制 Spring中AOP AOP即面向切面的编程 在AOP的概念中,将刚才的场景中的角色划分的更为细致 上例中的上帝,称之为Advice(被通知对象),它知道该做什么 关于上帝何时在什么时间、地点被通知,称之为Pointcut(切入点) 对于真实的大脑,称之为Target(目标对象) 对于假的大脑,不管是真实大脑的子类还是它们实现了共同的接口,都称之为Proxy(代理对象) Spring中的Advice和Pointcut 常见的Advice和Pointcut的类型 MethodBeforeAdvice AfterReturningAdvice ThrowsAdvice MethodInterceptor 配置文件相应的改动 注意事项 Advice仅用于通知,如果需要拦截方法的调用需要使用Interceptor 无论是MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice它们都不能改变方法的执行(本身的行为) 而Interceptor具有改变方法行为的能力 MethodInterceptor需要实现的方法 注意,一旦实现了MethodInterceptor,那些Advice(通知)就不管用了 讨论 使用Spring提供的ProxyFactoryBean提供代理的好处 不必自己创建整个代理对象了,代理对象由ProxyFactoryBean产生,程序员只需要关注实现具体功能 使用ProxyFactoryBean可以创建几乎任何对象的代理,减少了程序中代理类的数量 问题 但是现在上帝很郁闷,现在它必须戴上一大堆身份,弄得身上脏兮兮的 现在的结果是使得上帝依赖于Spring提供的接口,上帝离了Spring就活不了了 怎么办 Spring2.0里的AOP 使用AspectJ 使用AspectJ达到相同的效果 在AspectJ的表达中上帝是一个POJO,不需要实现特定的接口就可进行AOP操作 这个例子里,上帝在AspectJ中被成为Aspect(即切面),它的目的是执行正常逻辑之外的附加操作 与之前的Spring1.x中的AOP相比,可以把Advisor(通知)看作是知道了切入地点的Aspect 使用AspectAOP的步骤 将BeanFactory换成ApplicationContext ApplicationContext是BeanFactory的子接口 ApplicationContext提供了更多的功能 如果将BeanFactory比作一个小作坊,那么ApplicationContext就是一个生产车间 使用AspectAOP的步骤 使用spring2.0中提供的schema样式的配置文件 God类的变化 配置文件的变化 它们如何对应 其他类型的JoinPoint aop:after-returning aop:after-throwing aop:around aop:advisor -- 表示已经定义好连接点的切面 Pointcut表达式 execution表示执行 public表示公共方法 第一个*表示任意返回类型 第二个*表示任意方法名 (..)表示任意参数 更多的例子 问题 如何配合切入点表达式,向切面类传递参数 使用新语法的好处 减少了代理类 在切入点的控制上更为细腻 execution(public * *(..)) execution(* set*(..)) execution(* tra
您可能关注的文档
- [计算机硬件及网络]第9章 网络服务系.ppt
- [计算机硬件及网络]第8章 中断技术.ppt
- [计算机硬件及网络]第8章_51单片机存储器系统扩展技术.ppt
- [计算机硬件及网络]第9章 外部设备接口.ppt
- [计算机硬件及网络]第9章_设备管理 2.ppt
- [计算机硬件及网络]第一章 概述.ppt
- [计算机硬件及网络]第三章 程控交换机的硬件系统.ppt
- [计算机硬件及网络]第九章防火墙.ppt
- [计算机硬件及网络]第二掌 二极管全面解析.ppt
- [计算机硬件及网络]第八讲 触发器.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 《中国结核病预防控制工作技术规范(2020年版)》.PDF VIP
- 2023年北京市中考英语真题(含答案) .pdf VIP
- 南通大学2023-2024学年《病理学》期末考试试卷(A卷)附参考答案.docx
- 胸部损伤-教学课件.ppt VIP
- 某银行数据中心搬迁整体实施方案.pdf VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 国家公务员录用考试体检标准.doc VIP
- 入党申请书时事政治精选五篇.docx VIP
- 农村公路安全生命防护工程监理规划49943.doc VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
文档评论(0)