- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
J2EE Spring的AOP
* Spring的AOP 果占先 guozhanxian@ 什么是AOP Aspect Oriented Programming Spring的AOP框架 Spring的一个关键组件就是AOP框架 Spring的IoC容器并不依赖于AOP,也就是说,是不是用AOP都是你自己的选择;AOP完善了Spring的IoC容器 提供声明式企业服务,可以作为EJB声明式服务的替代品;声明式事务管理建立在Spring事务管理抽象之上 允许用户定义自己的方面,使用AOP来完善OOP的使用 AOP术语 切面(Aspect):切面是你要实现的交叉功能。它是应用系统模块化的一个切面或领域。例如:日志记录,可以建立一个日志记录切面,使用AOP应用到系统 连接点(Joinpoint):是应用程序执行过程中插入切面的地点;这个地方可以是方法调用,异常抛出等。切面代码在这个地方插入到你的应用的流程中,添加新的行为 通知(Advice):通知切面的实际实现。它通知应用系统新的行为。 AOP术语(续) 切入点(Pointcut):定义了通知应该应用在哪些连接点。通知可以应用到AOP框架支持的任何连接点,但是并不希望把所有切面应用到所有可能的连接点上。切入点让你指定通知应用到什么地方。通常通过指定类名和方法名,或者匹配类名和方法名式样的正则表达式来指定切入点 引入(Introduction):引入允许你为已存在类添加新方法和属性 AOP术语(续) 目标对象(Target):是被通知的对象。它既可以是你编写的类也可以是你需要添加定制行为的第三方类;目标对象只要全身心地关注主要业务 代理(Proxy):代理是将通知应用到目标对象后创建的对象。对于客户对象来说,目标对象和代理对象是一样的 织入(Weaving):是将切面应用到目标对象从而创建一个新的代理对象的过程;织入发生在目标对象声明周期上的多个点: 编译期 类装载期 运行期 Spring的AOP实现 用Java编写Spring通知(AspectJ需要特定的语法来编写切面和定义切入点) Spring运行时通知对象:代理Bean在第一次被应用系统需要的时候才被创建;如果使用ApplicationContext,那么当BeanFactory载入所有Bean的时候被创建 Spring有两种代理创建方式: 如果目标对象实现了特定接口,Spring使用反射机制来创建代理对象 如果目标对象没有实现任何接口,Spring使用CGLIB库生成目标对象的子类 创建通知 创建通知,就是在编写实现交叉功能的代码 Spring的连接点模型是建立在方法拦截上;所以通知可以织入到方法调用周围的各个地方 因为Spring可以在方法执行的多个地方织入通知,所以有多种通知类型 Spring中的通知类型 通知类型 接口 描述 Around ercept.MethodInterceptor 拦截对目标对象方法调用 Before org.springframework.aop.MethodBeforeAdvice 在目标方法被调用之前调用 After org.springframework.aop.AfterReturningAdvice 在目标方法被调用之后调用 Throws org.springframework.aop.ThrowsAdvice 当目标方法抛出异常时调用 拦截器接口中的方法 拦截器接口MethodBeforeAdvice 所在包org.springframework.aop.MethodBeforeAdvice 功能:可以在调用的目标方法之前加入功能。方法: voidbefore(Method?method, Object[]?args, Object?target)拦截器接口AfterReturningAdvice? 所在包org.springframework.aop.AfterReturningAdvice 功能:可以在调用的目标方法之后加入功能。方法: voidafterReturning(Object?returnValue, Method?method, Object[]?args, Object?target)拦截器接口MethodInterceptor 所在包 ercept.MethodInterceptor 功能:可以在调用的目标方法前后(也可以叫周围)加入功能。方法: ?java.lang.Objectinvoke(MethodInvocation?invocation)接口MethodInvocation 所在包 ercept.MethodInvocation MethodInvocation 接口从父接口Joinpoint处继承到一个方法 java.lang.Objectproceed() 调用proce
您可能关注的文档
- Influncing for win-win outcome(如合获得双赢的沟通技巧).ppt
- Insar处理过程及原理详解.ppt
- intel corporation英特尔公司.ppt
- Intel Napa 平台命名规则介绍.ppt
- intel_corporation英特尔公司.ppt
- International Economics 国际经济学Chpt 3.ppt
- International Women’s Day.ppt
- Internet国际互联网.ppt
- Introduction to Chinese Calligraphy 中文书法简介,免费!.ppt
- iPad点菜 超政府定价.ppt
文档评论(0)