spring事务控制小笔记

来源:互联网 发布:软件开发工程师待遇 编辑:程序博客网 时间:2024/06/05 20:51

直接贴上来做个笔记。不解释。自己看。

<bean id="txProxyTemplate" abstract="true" lazy-init="true"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager"><ref bean="myTransactionManager" /></property><property name="transactionAttributes"><props><prop key="create*">PROPAGATION_REQUIRED,-java.lang.Exception</prop><prop key="save*">PROPAGATION_REQUIRED,-java.lang.Exception</prop><prop key="remove*">PROPAGATION_REQUIRED,-java.lang.Exception</prop><prop key="update*">PROPAGATION_REQUIRED,ISOLATION_READ_COMMITTED</prop><prop key="del*">PROPAGATION_REQUIRED,-java.lang.Exception</prop><prop key="*">PROPAGATION_REQUIRED,ISOLATION_DEFAULT</prop></props></property></bean>

之前有网友说,readonly也可以修改成功数据。网上有相关解释。搜了一下贴在这里。

Readonly的解释:

“只读事务”并不是一个强制选项,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。
但是你非要在“只读事务”里面修改数据,也并非不可以,只不过对于数据一致性的保护不像“读写事务”那样保险而已。
因此,“只读事务”仅仅是一个性能优化的推荐配置而已,并非强制你要这样做不可。

实现类:

<bean id="generalService" parent="txProxyTemplate"><property name="target"><ref bean="generalTarget" /></property></bean>

今天就这样吧。


原创粉丝点击