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

本文深入探讨Spring框架中管理事务的两种主要配置方式:@Transactional注解与AOP方式。重点介绍了@Transactional注解的使用方法、配置步骤以及与AOP方式的区别和适用场景。通过实例演示了如何在Spring配置中正确引入和使用@Transactional注解,以确保业务逻辑的正确性和一致性。

spring中管理事务的配置方式除了@Transcational还有使用aop等,本文介绍@Transcational方式。

 

关于这两种方式的选择:

aop方式适合需要支持事务的方法或类较多,且方法和类名命名有规则可循的场景,aop方式耦合性低一些。

注解方式更灵活一些,但是耦合性较高,每个需要事务的地方都要添加该注解。

 

一、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")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值