java web 开发,使用ssh框架,在我的Spring配置文件中有下面的配置
<tx:adviceid="txAdvice"transaction-manager="transactionManager"><tx:attributes><tx:me...
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="batchUpdate" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
我不知道这个配置的是干什么的,如name是指定方法名吗?propagation, read-only又用来指定什么的呢?哪位大神知道的给小弟讲解下,不胜感激! 展开
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="batchUpdate" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
我不知道这个配置的是干什么的,如name是指定方法名吗?propagation, read-only又用来指定什么的呢?哪位大神知道的给小弟讲解下,不胜感激! 展开
4个回答
展开全部
这是配置Spring的事务。
其中:
<tx:method name="add*" propagation="REQUIRED" /> 表示 以add开头的方法,开启REQUIRED事务。其中REQUIRED为事务传播机制的类型。
关于事务传播机制:
PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。
追问
按你的意思propagation是指定事物的类型?那又表示什么呢?
追答
这个表示: 除了你上面定义的,其他的方法不走事务
展开全部
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="batchUpdate" propagation="REQUIRED" />
都是 Spring 管理事务范围,方法名匹配
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="remove*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="batchUpdate" propagation="REQUIRED" />
都是 Spring 管理事务范围,方法名匹配
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
name:指的是方法名必须以引号里面星号前面的字符串开头,propagation="REQUIRED" :表示必须这样命名,其实就是修改,删除,增加操作
<tx:method name="*" read-only="true" /> 查询操作,方法名没有限制
<tx:method name="*" read-only="true" /> 查询操作,方法名没有限制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是Spring的事务管理配置,"add*","edit*","remove*"这些方法都纳入了spring的事务管理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询