- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
AOP(AspectOrientedProgramming),也就是面向方面编程的技术。
AOP基于IoC基础,是对OOP的有益补充。
AOP将应用系统分为两部分,核心业务逻辑(Corebusiness
concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting
enterpriseconcerns,例如,所有大中型应用都要涉及到的持久化管理
(Persistent)、事务管理(TransactionManagement)、安全管理
(Security)、日志管理(Logging)和调试管理(Debugging)等。
AOP正在成为软件开发的下一个光环。使用AOP,你可以将处理
aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些
aspect。AOP可以防止代码混乱。
Springframework是很有前途的AOP技术。作为一种非侵略性的、
轻型的AOPframework,你无需使用预编译器或其他的元标签,便可
以在Java程序中使用它。这意味着开发团队里只需一人要对付AOP
framework,其他人还是像往常一样编程。
AOP概念
让我们从定义一些重要的AOP概念开始。
—方面(Aspect):一个关注点的模块化,这个关注点实现可能另
外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。
方面用Spring的Advisor或拦截器实现。
—连接点(Joinpoint):程序执行过程中明确的点,如方法的调用
或特定的异常被抛出。
—通知(Advice):在特定的连接点,AOP框架执行的动作。各
种类型的通知包括“around”、“before”和“throws”通知。通知类
型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,
维护一个“围绕”连接点的拦截器链。
—切入点(Pointcut):指定一个通知将被引发的一系列连接点的
集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。
—引入(Introduction):添加方法或字段到被通知的类。Spring
允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使
任何对象实现IsModified接口,来简化缓存。
—目标对象(TargetObject):包含连接点的对象,也被称作被通
知或被代理对象。
—AOP代理(AOPProxy):AOP框架创建的对象,包含通知。
在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
—编织(Weaving):组装方面来创建一个被通知对象。这可以在
编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring
和其他纯JavaAOP框架一样,在运行时完成织入。
各种通知类型包括:
—Around通知:包围一个连接点的通知,如方法调用。这是最
强大的通知。Aroud通知在方法调用前后完成自定义的行为,它们负责
选择继续执行连接点或通过返回它们自己的返回值或抛出异常来短路
执行。
—Before通知:在一个连接点之前执行的通知,但这个通知不能
阻止连接点前的执行(除非它抛出一个异常)。
—Throws通知:在方法抛出异常时执行的通知。Spring提供强
制类型的Throws通知,因此你可以书写代码捕获感兴趣的异常(和它
的子类),不需要从Throwable或Exception强制类型转换。
—Afterreturning通知:在连接点正常完成后执行的通知,例如,
一个方法正常返回,没有抛出异常。
Around通知是最通用的通知类型。大部分基于拦截的AOP框架(如
Nanning和Jboss4)只提供Around通知。
如同AspectJ,Spring提供所有类型的通知,我们推荐你使用最为
合适的通知类型来实现需要的行为。例如,如果只是需要用一个方法的
返回值来更新缓存,你最好实现一个afterreturning通知,而不是around
通知,虽然around通知也能完成同样的事情。使用最合适的通知类型
使编程模型变得简单,并能减少潜在错误。例如,你不需
文档评论(0)