spring aop中的propagation的7种配置的意思
2016-04-25 10:45
591 查看
1.前言。
在声明式的事务处理中,要配置一个切面,即一组方法,如
Java代码
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" />
</tx:attributes>
</tx:advice>
其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默认是REQUIRED。
2.七种配置的意思
下面是Spring中Propagation类的事务属性详解:
REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。
3.注意.
这个配置将影响数据存储,必须根据情况选择。
在声明式的事务处理中,要配置一个切面,即一组方法,如
Java代码
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" />
</tx:attributes>
</tx:advice>
其中就用到了propagation,表示打算对这些方法怎么使用事务,是用还是不用,其中propagation有七种配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默认是REQUIRED。
2.七种配置的意思
下面是Spring中Propagation类的事务属性详解:
REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。
3.注意.
这个配置将影响数据存储,必须根据情况选择。
相关文章推荐
- JAVA--享元模式(Flyweight)--设计模式十二
- JAVA--组合模式(Composite)--设计模式十一
- import javax.servlet 出错(真的很管用)
- Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
- JAVA基础--适配器模式
- SpringMVC
- JAVA--桥接模式(Bridge)--设计模式十
- JAVA基础--代理模式
- ideaIU-15.0.1的破解和eclipse快捷键
- JAVA--外观模式(Facade)--设计模式九
- freemarker之调用JAVA静态方法和静态属性
- JavaWeb过滤器.监听器.拦截器-原理&区别-个人总结(转)
- JAVA--代理模式(Proxy)--设计模式八
- java抽象类和接口的多种实现---学习日志
- JAVA中的接口和抽象类(转)
- java接口的本质---学习日志
- JAVA--装饰模式(Decorator)--设计模式七
- java内存泄漏
- java设计模式—工厂模式
- JAVA--适配器模式(Adapter)--设计模式六