您的位置:首页 > 编程语言 > Java开发

spring+springMVC中使用@Transcational方式管理事务的配置方法

2017-10-10 16:43 751 查看
引用剑握在手的博客

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

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 事务