Spring AOP面向方面编程原理:AOP概念

Spring AOP面向方面编程原理:AOP概念

ID:37240537

大小:68.50 KB

页数:14页

时间:2019-05-20

Spring AOP面向方面编程原理:AOP概念_第1页
Spring AOP面向方面编程原理:AOP概念_第2页
Spring AOP面向方面编程原理:AOP概念_第3页
Spring AOP面向方面编程原理:AOP概念_第4页
Spring AOP面向方面编程原理:AOP概念_第5页
资源描述:

《Spring AOP面向方面编程原理:AOP概念》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SpringAOP面向方面编程原理:AOP概念[关键字:spring,AOP概念,面向切面编程,事务管理(TransactionManagement)]OP(AspectOrientedProgramming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。AOP将应用系统分为两部分,核心业务逻辑(Corebusinessconcerns)及横向的通用逻辑,也就是所谓的方面Crosscuttingenterpriseconcerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(Transactio

2、nManagement)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。AOP正在成为软件开发的下一个光环。使用AOP,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。AOP可以防止代码混乱。Springframework是很有前途的AOP技术。作为一种非侵略性的、轻型的AOPframework,你无需使用预编译器或其他的元标签,便可以在Java程序中使用它。这意味着开发团队里只需一人要对付AOPframework,其他人还是像往常一样编程。AOP概念让我们从定义一

3、些重要的AOP概念开始。—方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。—连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。—通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。—切入点(Pointc

4、ut):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。—引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。—目标对象(TargetObject):包含连接点的对象,也被称作被通知或被代理对象。—AOP代理(AOPProxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。—编织(Weaving):组装方面来创建一个被

5、通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯JavaAOP框架一样,在运行时完成织入。各种通知类型包括:—Around通知:包围一个连接点的通知,如方法调用。这是最强大的通知。Aroud通知在方法调用前后完成自定义的行为,它们负责选择继续执行连接点或通过返回它们自己的返回值或抛出异常来短路执行。—Before通知:在一个连接点之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。—Throws通知:在方法抛出异常时执行的通知。Spring提供强制类型的Throws通知,因此你可以

6、书写代码捕获感兴趣的异常(和它的子类),不需要从Throwable或Exception强制类型转换。—Afterreturning通知:在连接点正常完成后执行的通知,例如,一个方法正常返回,没有抛出异常。Around通知是最通用的通知类型。大部分基于拦截的AOP框架(如Nanning和Jboss4)只提供Around通知。如同AspectJ,Spring提供所有类型的通知,我们推荐你使用最为合适的通知类型来实现需要的行为。例如,如果只是需要用一个方法的返回值来更新缓存,你最好实现一个afterreturning通知,而不是around通知,虽然aroun

7、d通知也能完成同样的事情。使用最合适的通知类型使编程模型变得简单,并能减少潜在错误。例如,你不需要调用在around通知中所需使用的MethodInvocation的proceed()方法,因此就调用失败。切入点的概念是AOP的关键,它使AOP区别于其他使用拦截的技术。切入点使通知独立于OO的层次选定目标。例如,提供声明式事务管理的around通知可以被应用到跨越多个对象的一组方法上。因此切入点构成了AOP的结构要素。下面让我们实现一个SpringAOP的例子。在这个例子中,我们将实现一个beforeadvice,这意味着advice的代码在被调用的pu

8、blic方法开始前被执行。以下是这个beforeadvice的实现代码。pack

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。