spring中对于事务的注解配置可以使用两种方式,一种是
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="create*">
<tx:method name="save*">
<tx:method name="delete*">
<tx:method name="*" read-only="true">
<tx:method name="*" rollback-for="Exception">
</tx:attributes>
</tx:advice><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"> </bean>
<aop:config>
<aop:advisor pointcut="execution(* ..service.*Manager.(..))" advice-ref="txAdvice">
</aop:config>
如果说在ServiceImpl.java中注明@Transactional,如
@Transactional(readOnly=true)
public class ServiceImpl implements Service {
// ...
}
那么可以在配置中写入以下代码就可以了
<!---->
<tx:annotation-driven transaction-manager="transactionManager">
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</bean>
如果上述两种方式同时存在的时候,代码以何种事务控制的方式为准?在此先谢谢各位的帮助!