zoukankan      html  css  js  c++  java
  • SpringMvc 事务的注解配置、实现、挂起

    1、事务的配置

    Spring-MyBaties.XML配置
        <!-- spring mvc 自动扫描注解的时候,不去扫描@Service -->
        <context:component-scan base-package="com.spdbccc.manager">
            <!--将Controller的注解排除掉 -->
            <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
        <util:properties id="app" location="classpath:app-${env}.properties"/>

        <bean id="dataSource_1" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName" value="#{app.jndiName_member}"/>
        </bean>
        <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
        <bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource_1"/>
            <property name="configLocation" value="classpath:spring/vazh_mybatis.xml"/>
        </bean>
        <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.spdbccc.manager.vazh.*.mapper"/>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_1"></property>
        </bean>
         <!--定义事务管理器-->
        <bean name="transactionManager_1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource_1"></property>
        </bean>

    2、事务的使用

    在需要实现事务的类声明或方法声明上加@Transactional注解
    @Transactional( value = "transactionManager_1", readOnly = false, isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)


    3、事务的挂起
    NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为它开启事务。如果方法在一个事务中被调用,该事务会被挂起,在方法调用结束后,原先的事务便会恢复执行。
    例如 方法A支持事务
    方法B不支持事务。
    方法A调用方法B。
    在方法A开始运行时,系统为它建立Transaction,方法A中对于数据库的处理操作,会在该Transaction的控制之下。
    这时,方法A调用方法B,方法A打开的 Transaction将挂起,方法B中任何数据库操作,都不在该Transaction的管理之下。
    当方法B返回,方法A继续运行,之前的Transaction回复,后面的数据库操作继续在该Transaction的控制之下 提交或回滚。

  • 相关阅读:
    jQuery笔记(1)
    [bzoj 1878][SDOI2009]HH的项链
    [bzoj 1968][Ahoi2005]COMMON 约数研究
    [bzoj 1899][ZJOI2004]lunch 午餐
    [bzoj 1090][SCOI2003]字符串折叠
    CodeForces 1029E div3
    [bzoj 1270][BeijingWc2008]雷涛的小猫
    [bzoj 1260][CQOI 2007]涂色paint
    [AtCoder ARC101D/ABC107D] Median of Medians
    [luogu 1070]道路游戏(NOIP2009T4)
  • 原文地址:https://www.cnblogs.com/SunDigital/p/4785468.html
Copyright © 2011-2022 走看看