书签 分享 收藏 举报 版权申诉 / 31
上传文档赚钱

类型Java-EE企业级项目开发JavaEE-单元7-任务3-审批申请设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:3886633
  • 上传时间:2022-10-22
  • 格式:PPT
  • 页数:31
  • 大小:1.06MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Java-EE企业级项目开发JavaEE-单元7-任务3-审批申请设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java EE 企业级 项目 开发 JavaEE 单元 任务 审批 申请 设计 课件
    资源描述:

    1、Struts2+Hibernate+SpringJavaEE 企业级项目开发单元七 工作流转任务3 审批申请设计1任务简介任务简介2任务分析任务分析3相关支撑知识相关支撑知识4任务小结任务小结目录页第1页任务3 审批申请设计过渡页第2页过渡页任务简介任务3 审批申请设计任务简介本任务的目标是学习学习Spring声明式事务:了解Spring的声明式事务掌握三种声明式事务如何使用能在修改申请模块应用声明式事务进行处理第3页过渡页第4页过渡页任务分析任务3 审批申请设计任务分析Spring声明式事务:基于AOP机制 事务处理的相关API不用介入到程序之中,使事务管理更简单、方便Spring声明式事务

    2、事务分为三种类型:基于 TransactionInter的声明式事务管理 基于 命名空间的声明式事务管理 基于Spring注解方式的事务管理配置 第5页过渡页第6页过渡页相关支撑知识相关支撑知识pSpring 的声明式事务管理l底层建立在 AOP 基础上l本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务p声明式事务优点l不需要通过编程的方式管理事务,不需要在业务逻辑代码中掺杂事务管理的代码l只需在配置文件中做相关的事务规则声明(或通过等价的基于标注的方式),便可以将事务规则应用到业务逻辑中l事务管理是一个典型的横切逻辑。AO

    3、P为声明式事务提供了简单而强大的支持第7页一Spring的声明式事务任务3 审批申请设计相关支撑知识p和编程式事务相比l声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别l但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等第8页一Spring的声明式事务任务3 审批申请设计相关支撑知识p和编程式事务相比l声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别l但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法

    4、等等第9页一Spring的声明式事务任务3 审批申请设计相关支撑知识pTransactionInterceptor 类 实施声明式事务管理功能。l基于 TransactionInterceptor 的事务管理示例配置文件第10页基于 TransactionInter的声明式事务管理1 1一Spring的声明式事务任务3 审批申请设计 PROPAGATION_REQUIRED 相关支撑知识p配置文件说明:l 配置了一个 TransactionInterceptor 来定义相关的事务规则l 它有两个主要的属性:n 一个是 transactionManager,用来指定一个事务管理器,并将具体事务相

    5、关的操作委托给它n 另一个是 Properties 类型的 transactionAttributes 属性,主要用来定义事务规则,该属性的每一个键值对中,键指定的是方法名,方法名可以使用通配符,而值就表示相应方法的所应用的事务属性第11页基于 TransactionInter的声明式事务管理1 1一Spring的声明式事务任务3 审批申请设计相关支撑知识指定事务属性的取值有较复杂的规则:第12页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计传播行为,隔离级别,只读属性,超时属性 不影响提交的异常,导致回滚的异常传播行为必须设置,取值必须

    6、以“PROPAGATION_”开头,具体包括:PROPAGATION_MANDATORY PROPAGATION_NESTED PROPAGATION_NEVER PROPAGATION_NOT_SUPPORTED PROPAGATION_REQUIRED PROPAGATION_REQUIRES_NEW PROPAGATION_SUPPORTS 隔离级别的取值必须以“ISOLATION_”开头,具体包括:ISOLATION_DEFAULT ISOLATION_READ_COMMITTED ISOLATION_READ_UNCOMMITTED ISOLATION_REPEATABLE_READ

    7、 ISOLATION_SERIALIZABLE相关支撑知识如果事务是只读的,使用“readOnly”指定。否则不需要设置该属性。超时属性取值必须以“TIMEOUT_”开头,后面跟一个int类型的值,表示超时时间,单位是秒。不影响提交的异常是指,即使事务中抛出了这些类型的异常,事务任然正常提交。必须在每一个异常的名字前面加上“+”。异常的名字可以是类名的一部分。比如“+RuntimeException”、“+tion”等等。导致回滚的异常是指,当事务中抛出这些类型的异常时,事务将回滚。必须在每一个异常的名字前面加上“-”。异常的名字可以是类名的全部或者部分,比如“-RuntimeExceptio

    8、n”、“-tion”等等。第13页基于 TransactionInter的声明式事务管理1 1一Spring的声明式事务任务3 审批申请设计相关支撑知识 示例1:第14页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED,TIMEOUT_20,+AbcException,+DefException,-HijExceptionp 针对所有方法名以 Service 结尾的方法,使用 PROPAGATION_REQUIRED 事务传播行为,事务的隔离级别是 I

    9、SOLATION_READ_COMMITTED,超时时间为20秒,当事务抛出 AbcException 或者 DefException 类型的异常,则仍然提交,当抛出 HijException 类型的异常时必须回滚事务。p 这里没有指定“readOnly”,表示事务不是只读的。相关支撑知识 示例2:第15页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计property name=testPROPAGATION_REQUIRED,readOnlyp 针对所有方法名为 test 的方法,使用 PROPAGATION_REQUIRED 事务传播

    10、行为,并且该事务是只读的。p 除此之外,其他的属性均使用默认值。比如,隔离级别和超时时间使用底层事务性资源的默认值,并且当发生未检查异常,则回滚事务,发生已检查异常则仍提交事务。相关支撑知识p配置ProxyFactoryBean 来组装 target 和advicel典型的 Spring AOP 的做法l通过 ProxyFactoryBean 生成的代理类就是织入了事务管理逻辑后的目标类第16页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计p 没有对业务代码进行任何操作,所有设置均在配置文件中完成,这就是声明式事务的最大优点。相关支撑知识

    11、p 声明式事务缺点:l虽然好,但配置文件太多l必须针对每一个目标对象配置一个 ProxyFactoryBeanl虽然可以通过父子 Bean 的方式来复用 TransactionInterceptor 配置,但实际的复用几率也不高l加上目标对象本身,一个业务类可能需要对应三个 配置,随着业务类的增多,配置文件将会变得越来越庞大,管理配置文件又成了问题p 解决方法:l Spring 提供了 TransactionProxyFactoryBean,用于将TransactionInterceptor 和 ProxyFactoryBean 的配置合二为一第17页基于 TransactionInter的声

    12、明式事务管理1一Spring的声明式事务任务3 审批申请设计相关支撑知识 基于 TransactionProxyFactoryBean 的事务管理示例配置文件,如下所示第18页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计 PROPAGATION_REQUIRED p Spring 经典声明式事务管理相关支撑知识第19页任务3 审批申请设计基于 TransactionInter的声明式事务管理1 1声明式事务【例7-2】Spring 支持声明式事务实例 com.microsoft.jdbc.sqlserver.SQLServerDrive

    13、r jdbc:microsoft:sqlserver:/localhost:1433;Databasename=webOA sa sa l 配置文件spring.xml的代码如下一Spring的声明式事务相关支撑知识第20页任务3 审批申请设计基于 TransactionInter的声明式事务管理1 1声明式事务【例7-2】Spring 支持声明式事务实例 l 配置文件spring.xml的代码如下一Spring的声明式事务相关支撑知识第21页任务3 审批申请设计基于 TransactionInter的声明式事务管理1 1声明式事务【例7-2】Spring 支持声明式事务实例 com.my.t

    14、est.IUserDAO PROPAGATION_REQUIRED,-Exception l 配置文件spring.xml的代码如下一Spring的声明式事务相关支撑知识p 配置文档说明:l TransactionProxyFactoryBean需要一个TransactionManager,由于这里使用的是JDBC,所以使用DataSourceTransactionManager,TransactionProxyFactoryBean是个代理对象,“target”属性指定要代理的 对 象,事 务 管 理 会 自 动 介 入 指 定 的 方 法 前 后,这 里 使 用“transactionAt

    15、tributes”属性指定l“insert*”表示指定方法名称以insert开头的都要纳入事务管理,您也可以指定方法全名,如果在方法执行过程中发生错误,则所有先前的操作自动撤回,否则正常提交。l 在“insert*”等方法上指定了“PROPAGATION_REQUIRED”,表示在目前的事务中执行操作,如果事务不存在就建立一个新的,相关的常数意义都可以在API文件的TransactionDefinition接口中找到。第22页基于 TransactionInter的声明式事务管理1一Spring的声明式事务任务3 审批申请设计相关支撑知识pSpring 3引入了 命名空间:l 结合使用 命名空

    16、间,带给开发人员配置声明式事务的全新体验,配置变得更加简单和灵活l 命名空间的切点表达式支持,声明式事务也变得更加强大第23页基于 命名空间的声明式事务管理2一Spring的声明式事务任务3 审批申请设计基于 的事务管理示例配置文件如下所示 相关支撑知识Spring 3引入了 命名空间:第24页基于 命名空间的声明式事务管理2一Spring的声明式事务任务3 审批申请设计如果默认的事务属性就能满足要求,简化后的基于 的事务管理示例配置文件 p由于使用了切点表达式,就不需要针对每一个业务类创建一个代理对象了。另外,如果配置的事务管理器 Bean 的名字取值为“transactionManager

    17、”,则可以省略 的 transaction-manager 属性,因为该属性的默认值即为“transactionManager”相关支撑知识Spring 3为事务管理提供了Transactional注解,通过为Transactional指定不同的参数,以满足不同的事务管理需求第25页二基于Spring注解方式的事务管理任务3 审批申请设计相关支撑知识Spring 3使用Transactional注解进行事务管理第26页二基于Spring注解方式的事务管理任务3 审批申请设计相关支撑知识Spring 3使用Transactional注解进行事务管理第27页二基于Spring注解方式的事务管理任务

    18、3 审批申请设计现将UserDaoImpl组件中的方法使用Transactional注解实现事务管理/*用户管理底层数据访问接口实现,使用Transactional注解实现事务管理*/Transactional public class UserDaoImpl implements UserDao /通过Resource注解注入Spring提供的JDBCTemplate实例 Resource JdbcTemplate jdbcTemplate;/处理新增用户业务逻辑,使用Transactional注解实现该方法的事务管理 Transactional(rollbackFor=RuntimeExc

    19、eption.class)/处理删除用户业务逻辑,使用Transactional注解实现该方法的事务管理 Transactional public void delUser(Integer id)/处理装载用户业务逻辑,使用Transactional注解设置该方法不需要事务 Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)public User loadUser(Integer id)p使用了Transactional注解配置事务管理之后,Spring配置文件中的事务配置代码就可以基本省略,在Spring配置文件中需要加入开启注解配置处理器过渡页第28页过渡页任务小结任务小结能力目标第29页1Spring的声明式事务2基于 TransactionInter的声明式事务管理4基于Spring注解方式的事务管理配置任务3 审批申请设计3基于 命名空间的声明式事务管理谢谢观看

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java-EE企业级项目开发JavaEE-单元7-任务3-审批申请设计课件.ppt
    链接地址:https://www.163wenku.com/p-3886633.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库