日期:2014-05-18  浏览次数:20668 次

spring事务管理小问题问问!!
配置代码:

<!-- 配置事务,使用代理的方式 -->
<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">  
    <property name="transactionManager" ref="transactionManager"></property>  
    <property name="transactionAttributes">  
        <props>  
            <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>  
            <prop key="update*">PROPAGATION_REQUIRED,-myException</prop>  
            <prop key="delete*">PROPAGATION_REQUIRED</prop>  
            <prop key="*">PROPAGATION_REQUIRED</prop>  
        </props>  
    </property>  
</bean> 

这个是我现在用的配置,网络上学来的,那个prop里的那些大写字母常量是什么东西???
还有这个配置的作用是什么:
<tx:annotation-driven />  

------解决方案--------------------
事务传播行为类型
说明
PROPAGATION_REQUIRED
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS
支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY
使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW
新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER
以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

------解决方案--------------------
作用:楼上的正解。一般用第一个就可以了;
<tx:annotation-driven />   
这个是启用注解配置的简单写法;简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
------解决方案--------------------
引用:
Quote: 引用:

作用:楼上的正解。一般用第一个就可以了;
<tx:annotation-driven />   
这个是启用注解配置的简单写法;简写形式可以让初学都快速应用默认配置方案。<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
<