- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在spring中使用声明型事务
在spring中使用声明型事务spring使用aop机制管理jdbc的连接和事务。它使用TransactionInterceptor类,Spring事务支持中的核心接口是org.springframework.transaction.PlatformTransactionManager。为了实际执行事务,Spring所有的事务划分功能都通过传递适当的TransactionDefinition实例,委托给 PlatformTransactionManager。尽管PlatformTransactionManager接口可以直接使用,应用程序通常配置具体的事务管理器并使用声明性事务来划分事务。Spring具有多种PlatformTransactionManager实现,它们分为两类:局部事务策略即针对单个资源执行事务(主要是针对单个的数据库)。实现有 org.springframework.jdbc.datasource.DataSourceTransactionManager。它用于jdbc数据源的配置,调用TransactionInterceptor开是一个事务,从DataSource得到一个connection并确保auto-commit设为disabled。他用JdbcTemplate在一个线程内绑定一个JDBC connection,TransactionInterceptor负责提交事务,DataSourceTransactionManager 调用Cmit()关闭connection,并解除绑定(potentially allowing for one thread connection per data source)。例如bean id=DataSourceclass=mons.dbcp.BasicDataSourceproperty name=driverClassNamevalueoracle.jdbc.driver.OracleDriver/value/propertyproperty name=urlvaluejdbc:oracle:thin:@localhost:1521:hua2/value/propertyproperty name=usernamevalueuser/value/propertyproperty name=passwordvaluegotpassword/value/property/bean/beansbean id=DataSourceTransactionManagerclass=org.springframework.jdbc.datasource.DataSourceTransactionManagerproperty name=dataSource ref=DataSource //beanbean id=tatanTransactionScriptsProxyCreatorclass=org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreatorproperty name=beanNameslistidref bean=tatanTransactionScripts //list/propertyproperty name=interceptorNameslistidref bean=DataSourceTransactionInterceptor //list/property/beanbean id=DataSourceTransactionInterceptorclass=erceptor.TransactionInterceptorproperty name=transactionManagerref=DataSourceTransactionManager /property name=transactionAttributeSourcevaluecom.tatan.tatanTransactionScriptsImpl.*=PROPAGATION_REQUIRED/value/property/beantransactionAttributesSource 属性指定每个方法的transaction attribute,PROPAGATION_REQUIRED说明在一个事务内这个方法被执行。和EJB一样,默认的情况下,spring只有当unchecked exception被抛出时,才rollback事务,也可以自己加入checked exception。tatanTransact
文档评论(0)