第14章 面向切面编程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章 面向切面编程

第14章 面向切面编程 Spring AOP简介 面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。 除了类(classes)以外,AOP提供了 切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。 在AOP中,把分散程序各个部分,解决同样问题的代码片段,称为问题的切面(或方面)。 一个切面可以简单的理解为解决跨越多个模块的交叉关注点问题的模块。 通过AOP可以使用一种非常简单、灵活的方式,在切面中实现了以前需要在各个核心关注点中穿插的交叉关注的功能,从而使得解决系统中交叉关注点问题的模块更加容易设计、实现及维护。 AOP相关框架及工具 AspectJ: 对java进行了扩展,形成一个功能强大、灵活、实用的AOP语言。 AspectWerkz:一个动态、轻量级、性能表现良好的AOP框架。 JBoss-AOP:JBoss公司开发的基于方法拦截及源码级数据的AOP实现框架。 Spring-AOP:使用基于代理及拦截器的机制,与Spring IOC容器融入一体的AOP框架。 AOP中的五种Advice AOP中的相关术语 1)关注点(Concern) 关注点也就是我们要考察或解决的问题。 把一个系统中的核心功能称为核心关注点跨越多个模块的关注点称为横切关注点或交叉关注点(Crosscutting Concerns) 。 在AOP的编程方法中,主要在于对关注点的提起及抽象。 2)切面(Aspect) 切面是一个抽象的概念,从软件的角度来说是指在应用程序不同模块中的某一个领域或方面。 AOP中的切面(aspect)是实现世界领域问题的抽象,除了包括属性、方法以外,同时切面中还包括切入点Pointcut、增强(advice)等。 3)连接点(Join point) 连接点也就是运用程序执行过程中需要插入切面模块的某一点。 这个点可以是一个方法、一个属性、构造函数、类静态初始化块,甚至一条语句。 4)切入点(Pointcut) 切入点指一个或多个连接点,可以理解成一个点的集合。切入点的描述比较具体,而且一般会跟连接点上下文环境结合。 5)增强或通知(Advice) 增强(Advice)里面定义了切面中的实际逻辑(即实现), 即法增强(Advice)是指在定义好的切入点处,所要执行的程序代码。 Spring的AOP简介 AOP是Spring 框架的重要组成部分。 Spring AOP使用纯Java实现,不需要专门的编译过程。 Spring没有像AspectJ那样强大的功能,只支持与方法调用有关的连接点。 Spring中的AOP代理由Spring的Ioc容器负责生成、管理,其依赖关系也由Ioc容器负责管理。 AOP编程只需要程序员参加3个部分: 定义普通业务组件 定义切入点 定义增强处理 Spring有两种方式定义切入点和增强处理: 基于Annotation的方式:使用@Aspect、@PointCut等Annotation 基于XML配置文件的管理方式:使用Spring的配置文件 启用@AspectJ支持 为了在Spring配置中使用@AspectJ aspects,必须首先启用Spring对基于@AspectJ aspects的配置支持,自动代理(autoproxying)基于通知是否来自这些切面。 自动代理是指Spring会判断一个bean是否使用了一个或多个切面通知,并据此自动生成相应的代理以拦截其方法调用,并且确认通知是否如期进行。 配置文件示例: ?xml version=1.0 encoding=GBK? beans xmlns=/schema/beans xmlns:xsi=/2001/XMLSchema-instance xmlns:context=/schema/context xmlns:aop=/schema/aop xsi:schemaLocation=/schema/beans /schema/beans/spring-beans-2.5.xsd /schema/context /schema/context/spring-context-2.5.xsd /schema/aop /sch

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档