`
xgbjmxn
  • 浏览: 268623 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

事务传播行为种类

阅读更多
事务传播行为种类

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:

表1事务传播行为类型

事务传播行为类型


说明

PROPAGATION_REQUIRED


如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS


支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY


使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW


新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED


以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER


以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED


如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

当使用PROPAGATION_NESTED时,底层的数据源必须基于JDBC 3.0,并且实现者需要支持保存点事务机制。

<!--Hibernate事务管理器-->
<bean id="transactionManager"
   class="org.springframework.orm.hibernate3.HibernateTransactionManager">
   <property name="sessionFactory">
    <ref bean="sessionFactory" />
   </property>
</bean>

<!-- 定义事务拦截器bean-->
<bean id="transactionInterceptor"
   class="org.springframework.transaction.interceptor.TransactionInterceptor">
   <!-- 事务拦截器bean需要依赖注入一个事务管理器-->
   <property name="transactionManager" ref="transactionManager" />
   <property name="transactionAttributes">
    <!-- 下面定义事务传播属性-->
    <props>
     <prop key="save*">PROPAGATION_REQUIRED</prop>
     <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="delete*">PROPAGATION_REQUIRED</prop>
     <prop key="update*">PROPAGATION_REQUIRED</prop>
     <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
   </property>
</bean>

<bean id="managerTemplate" abstract="true" lazy-init="true">
<property name="teamDao">
   <ref bean="teamDao" />
</property>
<property name="studentDao">
   <ref bean="studentDao" />
</property>   
</bean>

<bean id ="manager" class="com.zd.service.impl.Manager" parent="managerTemplate" />

<!-- 定义BeanNameAutoProxyCreator-->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
     <!-- 指定对满足哪些bean name的bean自动生成业务代理 -->
     <property name="beanNames">
            <!-- 下面是所有需要自动创建事务代理的bean-->
            <list>
                <value>manager</value>
            </list>
            <!-- 此处可增加其他需要自动创建事务代理的bean-->
     </property>
        <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
        <property name="interceptorNames">
            <list>
                <!-- 此处可增加其他新的Interceptor -->
                <value>transactionInterceptor</value>
            </list>
        </property>
    </bean>

<!-- 基本数据库操作 -->
<bean id="baseDao" class="com.zd.service.impl.BaseDao">
    <property name="hibernateTemplate">
      <ref bean="hibernateTemplate"/>
    </property>
</bean>

<!-- 班级 -->
<bean id="teamDao" class="com.zd.service.impl.TeamDao">
    <property name="baseDao">
       <ref bean="baseDao" />
    </property>
</bean>

<!-- 学生 -->
<bean id="studentDao" class="com.zd.service.impl.StudentDao">
    <property name="baseDao">
       <ref bean="baseDao" />
    </property>
</bean>

public void testSaveTeam() {
   Team team = new Team();
   team.setTeamId(DBKeyCreator.getRandomKey(12));
   team.setTeamName("Class CCC");
   IManager manager = (IManager) SpringContextUtil.getContext().getBean("manager");
 

   Student student = new Student();
   student.setStudentId(DBKeyCreator.getRandomKey(13));
   student.setSex(Student.SEX_FEMALE);
   student.setStudentName("Tom");
   student.setTeamId("60FHDXDIG5JQ");
   manager.saveTeamAndStu(team, student);
   System.out.println("Save Team and Student Success");
分享到:
评论

相关推荐

    Spring在Transaction事务传播行为种类

    ### Spring中的Transaction事务传播行为种类详解 #### 一、引言 在开发基于Spring框架的应用程序时,事务管理是确保数据一致性的重要手段之一。Spring框架提供了丰富的事务管理功能,其中包括了事务传播行为...

    事务传播特性了解事务的几种传播特性

    在Java应用开发中,特别是使用Spring框架时,开发者可以通过配置不同的事务传播行为来控制事务如何在方法调用之间传播。这些传播行为对于理解并正确实现业务逻辑至关重要。 #### 二、事务传播特性的种类 根据给定...

    Spring事务管理失效原因汇总

    5. 事务传播行为配置错误。比如,在需要REQUIRES_NEW传播行为的情况下配置了REQUIRED。 为了确保事务管理的有效性,开发者应该理解并正确使用@Transactional注解,合理配置事务管理的相关参数,注意异常的处理,并...

    Spring事务管理

    例如,通过`transactionAttributes`属性设置不同的事务传播行为。 - **基于注解的配置**:使用`@Transactional`注解直接在业务方法上声明事务属性,如`PROPAGATION_REQUIRED`表示必须有事务,如果没有则新建。这种...

    跟我学Spring3(9.3)Spring的事务之编程式事

    4. **事务的传播行为**:在编程式事务中,我们需要了解Spring定义的7种事务传播行为,例如PROPAGATION_REQUIRED(默认行为,如果当前存在事务,则加入到该事务;如果当前没有事务,则创建一个新的事务)、...

    分布式事务1

    总的来说,分布式事务处理是分布式系统设计中的一大挑战,需要综合考虑异常处理、事务隔离级别、事务传播行为以及各种分布式事务协议。正确理解和应用这些知识,能帮助我们构建更健壮、一致性的分布式系统。

    Java事务总结.docx

    综上所述,事务处理是数据库管理中的核心机制之一,通过合理设置事务的隔离级别和传播行为,可以有效解决并发操作带来的数据不一致问题。同时,针对分布式系统的特殊需求,还需要采用适当的事务管理技术,如JTA和两...

    SpringMVC+MyBatis 事务管理(实例)

    它可以指定事务的传播行为、隔离级别、超时时间等。 7. tx+aop方式 tx+aop方式是Spring的事务管理方式之一,它使用AOP(面向aspect编程)来实现事务管理。这种方式可以将事务管理和业务逻辑分离,提高代码的可读性...

    精品资料(2021-2022年收藏)企业上网行为管理制度.doc

    - 设备分类:涵盖文件输入及处理设备、输出设备、传输设备、整理设备以及网络设备等,如计算机、打印机、扫描仪、网络设备等。 - 设备标签:所有设备应贴有固定资产标识,记录设备信息,并建立详细的设备使用状况...

    企业上网行为管理制度归纳.pdf

    首先,办公设备管理涵盖了各种设备的分类、标签制度以及申购、维修与保管流程。设备被分为四类:文件输入及处理设备、文件输出设备、网络设备和其他设备。每个类别包括常见的办公设备,如计算机、打印机、网络设备等...

    事务文书简报定稿.ppt

    事务文书简报是一种在技术领域中也广泛应用的书面载体,主要用于汇报工作、交流信息和指导工作,具有简短、灵活的特点。简报的名称多种多样,如“XX简报”、“XX反映”、“XX动态”等,是内部沟通的重要工具。 简报...

    2019年武汉大学新闻与传播学院招聘模拟试题及答案解析.docx

    7. **事业单位改革**:事业单位的行政级别逐步取消,具体事务由事业单位自身负责,这旨在推动事业单位自主管理,提高服务效率,减少行政干预。 这些知识点涉及事业单位管理、法律体系、文学知识、公共安全管理以及...

    四年级垃圾分类教学设计.doc

    【知识点】 1. 四年级垃圾分类教学:这个教学...通过这样的垃圾分类教学设计,四年级的学生不仅可以学习到理论知识,还能通过实践项目深入理解和体验垃圾处理的复杂性和环保的紧迫性,从而形成良好的环保行为习惯。

    大连理工大学20春《公共关系学》在线作业2答案.docx.docx

    12. 公关活动分类:不同学者根据公关行为特性将其分为新闻代理、广告代理、公共信息和双向平衡等多种模式。 13. 艾维·李与公关历史:艾维·李是公共关系行业的先驱,创立了世界上第一家公关顾问事务所,强调真实的...

    Java-J2EE Job Interview

    - 事务传播行为:事务传播特性在多层系统中的应用。 6. **面向对象设计**: - 面向对象原则:单一职责原则、开闭原则等基本原则。 - 设计模式选择:根据实际需求选择合适的设计模式。 通过以上知识点的学习与...

    最新音乐作品授权合同范本事务所认证.docx

    - 包括但不限于复制权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、出版权、发表权、汇编权等所有现行著作权法规定的权利种类。 - 乙方需尊重甲方的作品署名权和保护作品...

    《新闻学概论》期末考试题(附答案).pdf

    - 宣传:传播特定观念以影响思想和引导行动的社会行为。 - 受众:大众传播媒介信息的接受者,主要包括报纸读者、广播听众和电视观众。 - 新闻体制:涉及媒介机构的归属、传播目的、管理方式和经营方式,核心是...

    Apress.Begining EJB3 Java EE 7 Edition.2013

    - 事务传播行为(Transaction Propagation)。 - 事务的隔离级别(Isolation Level)。 - 事务的回滚和补偿机制。 - **关键知识点:** - 事务的ACID属性。 - EJB中的事务管理类型(容器管理和Bean管理)。 - 事务...

    吉林省吉林市龙潭区 八年级政治上学期期中试题(无答案) 新人教版 试题.doc

    18. **违法行为分类**:一般违法行为指未达到犯罪程度的违法行为,如行为一;犯罪行为是指严重危害社会,触犯刑法的行为,如行为二。 19. **犯罪的基本特征**:犯罪的基本特征包括严重的社会危害性、刑事违法性和应...

Global site tag (gtag.js) - Google Analytics