欢迎来到天天文库
浏览记录
ID:21727901
大小:56.00 KB
页数:5页
时间:2018-10-24
《spring框架的事务管理应用分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Spring框架的事务管理应用分析摘要介绍了J2EE平台上JavaL配置数据提供给它。 SpringIoC,借助于依赖注入设计模式,使得开发者不用理会对象自身的生命周期极其关系,而且能够改善开发者对模式的使用。对于一个对象的管理不是什么困难,难就难在对整个对象群的管理。依赖注入可以让容器管理对象,即“Don’tcallme,Iit(false); //dosomething conn.mit();//mittranscation}catch(Exceptione){ conn.rollback();}f
2、inally{ try{ conn.close(); }catch(SQLExceptionse){//dosth.} //closeResultSet,PreparedStatement,Connection //notice:MaybeocurrExceptiont,conn}按照以往的思路来写代码,代码量比较长,而且容易疏忽,忘掉一些try/catch,引发一些异常无法catch,虽然有时候我们会写DBTool类,来关闭这些资源,并且保证在关闭这些资源时,不向外抛异常,但是这样做会导致额外的麻烦。
3、 2、Spring提供的编程式的事务处理 Spring提供了几个关于事务处理的类:TransactionDefinition//事务属性定义 TranscationStatus//代表了当前的事务,可以提交,回滚。 PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的
4、子类。我们使用编程式的事务管理流程可能如下: (1)声明数据源。 (2)声明一个事务管理类,例如:DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager等 (3)在我们的代码中加入事务处理代码:TransactionDefinitiontd=neit(ts);}catch(Exceptione){transactionManager.rollback(ts);}使用Spring提供的事务模板Trans
5、actionTemplate:voidadd(){ transactionTemplate.execute(neplate也是为我们省去了部分事务提交、回滚代码;定义事务模板时,需注入事务管理对象。 3、Spring声明式事务处理 Spring声明式事务处理也主要使用了IoC,AOP思想,提供了TransactionInterceptor拦截器和常用的代理类TransactionProxyFactoryBean,可以直接对组件进行事务代理。 使用TransactionInterceptor的步骤:
6、 (1)定义数据源,事务管理类 (2)定义事务拦截器,例如:<beanid="transactionInterceptor"class="org.springframee="transactionManager"><refbean="transactionManager"/></property><propertyname="transactionAttributeSource"><value>.test.UserManager.*r=PROPAGATION_REQUIRED</value></prop
7、erty></bean>(3)为组件声明一个代理类:ProxyFactoryBean<beanid="userManager"class="org.springframeee="proxyInterfaces"><value>.test.UserManager</value></property><propertyname="interceptorNames"><list><idreflocal="transactionInterceptor"/></list></property></bean>使用Tr
8、ansactionProxyFactoryBean:<beanid="userManager"class="org.springframee="transactionManager"><refbean="transactionManager"/></property><propertyname="target"><reflocal="userManagerTarget"/></property><propertyname="t
此文档下载收益归作者所有