码迷,mamicode.com
首页 > 编程语言 > 详细

spring+springMVC中使用@Transcational方式管理事务的必须要配的东西。

时间:2015-09-19 15:09:54      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

spring中管理事务的配置方式除了@Transcational还有使用aop等,本文介绍@Transcational方式,但是推荐使用aop方式。因为如果有多个事务管理器的话,你在注解中还需要注明使用哪个事务管理器@Transactional("transactionManager1")。

 

一、spring中一定要记得加载所有需要的bean

如果使用注解方式的话一定要记得扫描注解,下边的例子表示扫描xxx.xxx下所有文件(包含每一级子文件夹)中除了@Controller以外的所有注解。

<context:component-scan base-package="xxx.xxx">
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

二、而springmvc中则只扫描controller

<context:component-scan base-package="xxx.xxx" use-default-filters="false" >
        <context:include-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

既然是只扫描,那么默认扫描的那些东西都要去掉。总之如果使用context:include-filter(注意上边两段写的分别是include和exclude),则一定不要忘记use-default-filters="false"。

 

三、spring中其它要配的除了数据源外必须还有这些:

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>
    <!-- 使用annotation注解方式配置事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"  />
transactionManager中的dataSource是告诉事务管理器,调用哪个数据库的commit和rollback

tx:annotation-driven则是为所有已经加载(步骤一种的扫描就是加载过程)进spring的,且有@Transcational注解的bean交给transaction-manager中所写的事务管理器来管理事务。如果不写哪个事务管理器就可以在注解中写了,例如@Transactional("transactionManager1")

spring+springMVC中使用@Transcational方式管理事务的必须要配的东西。

标签:

原文地址:http://www.cnblogs.com/flying607/p/4821397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!