Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,
它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
事务传播行为类型
事务传播行为类型
说明
PROPAGATION_REQUIRED
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS
支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY
使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW
新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER
以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。
分享到:
相关推荐
在Spring Boot项目中,通常只需在pom.xml或build.gradle文件中添加对应的依赖,并在配置文件中指定使用的事务管理器类型即可。 总的来说,Spring TX 5.0.0.0.RELEASE.jar是Java开发中实现高效、灵活事务管理的重要...
### Spring配置文件详解 接下来的部分展示了Spring的配置文件——`enginConfig.xml`。这里定义了三个主要的bean: 1. **SessionFactory**:`sessionFactory` bean通过`LocalSessionFactoryBean`类创建,它是Spring...
3. **更新配置文件**:最后,在 Spring 的配置文件中添加必要的命名空间,以便能够使用 Spring 2.0 提供的新功能。 ##### 2.2 更新配置文件示例 ```xml <beans xmlns="http://www.springframework.org/schema/...
在 Spring 配置文件中,我们需要定义事务处理类,不同的数据访问方式,事务处理类不同,如 Hibernate 操作的 HibernateTransactionManager,JDBC 操作的使用 DataSourceTransactionManager。 接下来,我们需要定义...
在XML配置文件中直接定义事务规则,适用于没有注解支持的环境。例如: ```xml *" propagation="REQUIRED" /> (* com.bluesky.spring.service.*.*(..))" /> ``` 4. **基于Java配置的声明式事务**...
而声明式事务管理则是在配置文件或注解中定义事务规则,使得业务逻辑与事务管理相分离,更加简洁和易于维护。 上述内容展示的是Spring声明式事务管理的一种实现方式,它基于AOP(面向切面编程)的代理机制。在这个...
这通常通过`LocalSessionFactoryBean`完成,它会根据提供的Hibernate配置文件(如`hibernate.cfg.xml`)来创建SessionFactory。 ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate5....
本文详细介绍了Hibernate与Spring集成过程中涉及的关键配置,包括数据源、SessionFactory、事务管理器以及事务代理工厂的配置细节。通过这些配置,可以实现对数据库的高效访问,并利用Spring的事务管理机制来简化...
在Spring中,我们可以使用XML文件或注解来配置事务管理。 Propagation(事务的传播属性) Propagation是指在方法调用过程中,事务的传播行为。它确定了代理应该给哪个方法增加事务行为。Spring定义了7种传播行为:...
总的来说,SSH中的Spring事务管理通过配置文件和注解实现了事务的自动化管理,简化了开发者对数据库操作的事务控制,确保了应用程序的事务一致性。理解并熟练掌握这些概念对于进行高效、稳定的Java Web开发至关重要...
在XML配置文件中,我们可以通过`<tx:advice>`、`<aop:config>`或`<tx:annotation-driven>`标签来定义事务行为。 ```xml (* com.example.service.*.*(..))"/> *" propagation="REQUIRED"/> ``` 上述...
它通过在 XML 配置文件或者使用 @Transactional 注解来声明事务的边界,从而将事务管理从业务代码中分离出来。@Transactional 注解可以应用于类或方法级别,指定事务的属性,如隔离级别、超时时间、只读标志等。声明...
这是最常见的一种方式,通过在Spring配置文件中定义AOP代理来实现事务管理。在给定的示例中,`TransactionProxyFactoryBean`被用来创建一个事务代理,它将目标DAO对象(如`userDaoTarget`)包装起来,当调用DAO方法...
Spring框架采取声明式事务管理机制,程序员只需要按照Spring的规范和约定在配置文件中去声明配置自己管理事务的形式即可,Spring框架会根据您的配置自动帮助您完成事务的管理控制。 二、事务的属性 事务的属性包括...
在Spring框架中,配置文件起着至关重要的作用,它们定义了应用程序的组件以及它们之间的依赖关系。这里有两个主要的配置文件:`applicationContext-database.xml` 和 `applicationContext-pojo.xml`,分别关注于...
Spring还提供了事务管理,可以通过XML配置文件声明事务管理器,如示例中的`HibernateTransactionManager`,并与Hibernate集成来管理事务。此外,Spring的`ContextLoaderListener`或`ContextLoaderServlet`可以用来...
4. **声明式事务管理**:Spring允许在配置文件中声明事务边界,这样可以在多个方法之间定义事务传播行为和隔离级别,而无需在代码中显式处理。 例如,以下是如何使用HibernateTemplate删除Userinfo对象: ```java ...
声明式事务管理是Spring提供的更推荐的方式,它将事务规则声明在配置文件或注解中,使得事务管理与业务逻辑分离,提高了代码的可读性和可维护性。Spring通过AOP(面向切面编程)实现声明式事务,它会在事务边界自动...