http://www.javaeye.com/topic/35907
题: 解惑 spring 嵌套事务
spring 事务的两种配置方式
1,aop方式
<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="add*" propagation="REQUIRED" isolation="DEFAULT" timeout="-1" rollback-for="Exception"/>
<tx:method name="*" propagation="REQUIRED" isolation="DEFAULT" timeout="-1" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txOperation" expression="execution(* service.*.add*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txOperation"/>
</aop:config>
2 factory方式
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="txProxyTemplate" abstract="true"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="IWebService" parent="txProxyTemplate">
<property name = "target">
<bean class="service.WebService">
<property name="teacherDao">
<ref bean="teacher"/>
</property>
</bean>
</property>
</bean>