(轻量级Java EE程序设计及实践)第8章Spring深入.ppt

(轻量级Java EE程序设计及实践)第8章Spring深入.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring深入 -*- 掌握AOP的基本概念及术语 掌握各种Advice类的编写方法 了解切面的不同类型 掌握配置切面的方法 了解Spring对事务管理的支持 掌握编程式事务管理 掌握声明式事务的概念和配置方式 目标 -*- AOP AOP(Aspect Oriented Programming)即“面向切面编程” AOP利用一种称为“横切”的技术,剖解开封装对象的内部,并将那些影响了多个类的行为封装到一个可重用模块中,并将其命名为“Aspect”,即切面(或称为方面)。通过切面可以将那些与业务无关却为业务模块共同调用的逻辑封装起来,从而减少了系统的重复代码,降低模块间的耦合度,有利于系统的可维护性和可扩展性 OOP提高了代码的重用,而AOP将分散在各个业务逻辑中的相同代码,通过横向切割的方式抽取成一个独立的模块,使得业务逻辑类更加简洁明 -*- AOP相关概念 连接点(Joinpoint) 切入点(Pointcut) 增强(Advice) 目标对象(Target) 引入(Introduction) 织入(Weaving) 代理(Proxy) 切面(Aspect) 在AOP编程过程中,需要开发人员参与的有三个方面: 定义普通业务类 定义切入点,一个切入点可能横切多个业务组件 定义增强,增强就是在AOP框架为普通业务组件织入的处理逻辑 -*- SpringAOP增强类型 - 1 根据增强在目标类连接点的位置不同,Spring框架支持五种类型的增强: 前置增强 后置增强 返回后增强 抛出异常后增强 环绕增强 定义方式: 基于XML配置文件的管理方式:使用Spring配置文件来定义切入点和增强 基于Annotation的“零配置”方式:使用@Aspect、@Pointcut等注解来定义切入点和增强 -*- SpringAOP增强类型 - 2 aop:before…/:配置Before增强处理 aop:after…/:配置After增强处理 aop:after-returning…/:配置AfterReturning增强处理 aop:after-throwing…/:配置AfterThrowing增强处理 aop:around…/:配置Aroud增强处理 属性名 描述 pointcut 该属性指定一个切入点表达式,Spring将在匹配该表达式的连接点时织入该增强 pointcut-ref 该属性指定一个已经存在的切入点名称,通常pointcut和pointcut-ref两个属性只需使用其中之一 method 该属性指定一个方法名,它对应切面中所定义的增强逻辑方法 throwing 该属性只对after-throwing…/元素有效,用于指定一个形参名,AfterThrowing增强处理方法可以通过该形参访问目标方法所抛出的异常 returning 该属性只对after-returning…/元素有效,用于指定一个形参名,AfterReturning增强处理方法可以通过该形参访问目标方法的返回值 -*- 基于XML – 配置切面 属性名 描述 id 定义该切面的标识名 ref 指定该属性所引用的普通Bean作为切面Bean order 指定该切面Bean的优先级,order值越小,该切面对应的优先级越高 public class AspectBean { public void checkAuth() { System.out.println(权限检查...);} public void release() { System.out.println(最后释放资源...);} public void log(Object result) { if (result == null) System.out.println(数据库中无结果!); else System.out.println(数据库中有结果!); } public void processException(Throwable ex) { System.out.println(异常信息为: + ex.getMessage()); } public void proceedInTrans(ProceedingJoinPoint joinpoint) throws Throwable{ System.out.println(开始事务...); ceed(); System.out.println(提交事务...); } } ?xml version=1.0 encoding=UTF-8? beans xmlns=/schema/beans xmlns:xsi=/2001/XMLSchema-

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档