- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * ? ? ? ? ? SSH框架整合实战教程 第14章 面向切面编程(Spring AOP) 手动代理—JDK动态代理 手动代理—CGLIB代理 声明式工厂Bean 基于XML的声明式AspectJ 基于Annotation的声明式AspectJ 1 了解AOP的执行过程 2 熟悉AOP的作用 和相关概念 掌握 了解 熟悉 掌握ApplicationContext 容器的使用以及IoC和DI的思想 3 学习目标 ?点击查看本小节知识架构 Spring AOP简介 14.1 手动代理 14.2 ?点击查看本小节知识架构 ?点击查看本小节知识架构 AspectJ开发 14.4 声明式工厂Bean 14.3 ?点击查看本小节知识架构 目录 14.1 Spring AOP简介 返回目录 14.1.1 什么是AOP 14.1.2 AOP术语 知识架构 14.2 手动代理 返回目录 14.2.1 JDK动态代理 14.2.2 CGLIB代理 知识架构 14.3 声明式工厂Bean 返回目录 14.3.1 Spring通知类型 14.3.2 声明式Spring AOP 知识架构 14.4 AspectJ开发 返回目录 14.4.1 基于XML的声明式AspectJ 14.4.2 基于Annotation的声明式AspectJ 知识架构 什么是AOP? 为了将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,Spring提供了面向切面的编程方式,也称Spring AOP,AOP的全称是 Aspect Oriented Programing,即面向切面编程。 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码,主要体现在事务处理、日志管理、权限控制、异常处理等方面,使开发人员在编写业务逻辑时可以专心于核心业务,提高了代码的可维护性。 14.1 Spring AOP简介 AOP的专业术语包括Joinpoint、Pointcut、Advice、Target、Weaving、Proxy和Aspect,对于专业术语的解释,具体如下: Pointcut(切入点):是指要对哪些Joinpoint进行拦截,即被拦截的连接点。 Joinpoint(连接点):是指那些被拦截到的点,在Spring中,可以被动态代理拦截目标类的方法。 Advice(通知):是指拦截到Joinpoint之后要做的事情,即对切入点增强的内容。 Target(目标):是指代理的目标对象。 Weaving(织入):是指把增强代码应用到目标上,生成代理对象的过程。 Proxy(代理):是指生成的代理对象。 Aspect(切面):是切入点和通知的结合。 AOP术语 14.1 Spring AOP简介 代理模式是 Java 中的常用设计模式,代理类通过调用被代理类的相关方法,提供预处理、过滤、事后处理等服务。AOP手动使用代理模式有两个典型的例子,分别为JDK动态代理和CGLIB代理。为了让读者了解AOP的执行过程,本小节将通过这两种手动代理的实现方式,结合相关案例,模拟AOP的执行过程。 概 述 14.2 手动代理 JDK动态代理是通过JDK中的 java.lang.reflect.Proxy 类来实现的。 案例代码 接下来,通过一个案例来演示JDK动态代理具体的实现步骤,如文件14-1~14-5所示。 JDK动态代理 14.2 手动代理 通过前面的学习可知,JDK的动态代理用起来非常简单,但它是有局限性的,使用动态代理的对象必须实现一个或多个接口。 那么,如何代理没有实现接口的类? 14.2 手动代理 CGLIB代理 如果想代理没有实现接口的类,那么可以使用CGLIB代理。 ? CGLIB(Code Generation Library)是一个高性能开源的代码生成包,它的底层是通过使用一个小而快的字节码处理框架ASM(Java字节码操控框架)来转换字节码,为一个类创建子类,然后对子类进行增强,解决无接口代理问题。所以CGLIB要依赖于ASM的包,解压Spring的核心包spring-core-3.2.2.RELEASE.jar,文件目录如图所示。 14.2 手动代理 Hibernate 的 二级缓存 举个例子 For example 案例代码 接下来,通过一个案例来演示实现CGLIB的代理过程,如文件14-6~14-8所示。 14.2 手动代理 在14.2小节中,讲解了AOP手动代理,接下来通过讲解Spring的通知来介
您可能关注的文档
最近下载
- 自然辩证法-2018版课后思考题答案.pdf VIP
- 2024-2025学年山东省聊城市茌平区八年级(上)期末数学试卷(含部分答案).pdf VIP
- 钢结构采光顶专项施工方案.doc VIP
- 深度解析(2026)《YST 1571-2022高频高速印制线路板用压延铜箔》.pptx VIP
- JTGG10-2016_公路工程施工监理规范.pdf
- 华测智能RTK使用说明书.pdf
- 国内外电机设计制造新工艺新技术与检修及质量检测技术标准应用手册.doc VIP
- 植物的受精与胚胎发育.pptx VIP
- Panasonic松下LUMIX G97 相机拍摄更为优质的照片和视频产品说明书用户手册.pdf
- 2023-2024学年高中信息技术必修一沪科版(2019)第三单元项目五《 描述洗衣机的洗衣流程——了解算法及其基本控制结构》说课稿.docx VIP
原创力文档


文档评论(0)