<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
请问这个<prop key="*">PROPAGATION_REQUIRED</prop> 就是指所有方法都开启事务?,不管什么名称开头的方法都开启事务?
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!-- 事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!-- 下面定义事务传播属性 -->
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
请问这个<prop key="*">PROPAGATION_REQUIRED</prop> 就是指所有方法都开启事务?,不管什么名称开头的方法都开启事务?
解决方案 »
- 在线编辑器,特殊符号问题
- hibernate Date Exception
- hibernate 一对多 动态封装 集合 fetch问题
- The WebLogic Server did not start up properly.
- 请教各位
- 使用IE7时程序中CSV,EXCEL文件下载问题,IE6时全部正常
- 求教:Struts,Sping,Hibernate的分页是怎么实现的?
- 熟悉Axis进来,出现no SOAPAction header的错误!
- query.list(); 没有相符合的结果时返回的是不是null啊 ??
- myeclipse 10配置jboss 7.1.1无法启动Error: Could not create the Java Virtual Machine.
- 干软件做外包有提升吗
- 麻烦各位给推荐一本Java开发Web Service的书籍
//4, tx标签拦截器-------------------方法别的-------------------
//<aop:pointcut/><tx:advice/><aop:advisor/>元素都可以是多个,就可以实现方法级别了
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="interceptorPointCuts" expression="execution(* com.bluesky.spring.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
</aop:config>
//5,全注解-------------------方法别的-------------------spring官方推荐-特别是大项目中
<context:annotation-config />
<context:component-scan base-package="com.bluesky" />
<tx:annotation-driven transaction-manager="transactionManager"/>
//java代码中
@Transactional
public class UserDaoImpl extends HibernateDaoSupport{
@Transactional(isolation = Isolation.READ_COMMITTED)
public void test1(){...}
}这个问题,困扰了我很长时间,在网上搜的都不太准确,
不过我建议你看一看传智博客关于这方面的视频教程
我刚看完
这个链接可以免费下载http://bbs.langsin.com/search.php?searchid=43&orderby=lastpost&ascdesc=desc&searchsubmit=yes
非常好的,而且文件不大希望对你有帮助
<context:component-scan base-package="com.bluesky" />
这个是不需要的,属于失误,
它是spring用来自动扫描bean的
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>有以insert开头的方法走第一个。*所有的。
<!-- 事务管理实体 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 事务配置 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 查询方法只读 -->
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<!-- 其它方法使用普通事务 -->
<tx:method name="insert*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<!-- aop切入 -->
<aop:config>
<!-- AspackJ语言 -->
<aop:pointcut expression="execution(* com.sun.service.*.*(..))" id="interCut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="interCut"/>
</aop:config>
这样写啦