ssh2的application.xml配置文件配置详解
作者:网络转载 发布时间:[ 2015/7/22 13:55:49 ] 推荐标签:软件测试管理
6.spring集成hibernate事务管理配置
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
上面是事务管理器,下面配置事务:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 方法对应的传播属性 -->
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<!-- 事务控制位置,一哪些类的那些方法参与事务,一般在业务层service -->
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.avit.mmsp.padapter.services.*.*(..))"
advice-ref="txAdvice" />
<aop:advisor
pointcut="execution(* com.avit.mmsp.common.message.service.*.*(..))"
advice-ref="txAdvice" />
</aop:config>
上面的代码表示这个事务的事务管理器为transactionManager,这个advice中规定save的方法的传输方式为required,也是说没有sessionfactory的时候回自动建立,又得时候不会建立了。规定了advice的同时还需要指定一个aop:pointcut去引用它,这样这个advice被联系到这两个pointcut上了。
关于read-only属性的理解:
表示该事物为只读事务,在将事务设置成只读后,相当于将数据库设置成只读数据库,此时若要进行写的操作,会出现错误。
read-only的应用场合:
如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性;
如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性,否则,在前条SQL查询之后,后条SQL查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持。
ps:注意是一次执行多次查询来统计某些信息,这时为了保证数据整体的一致性,要用只读事务,关于spring和jdbc中怎样设置事务,请参见博文:
差不多了,这些,以后再补充
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南