使用如下配置方式实现:
无论在方法中发生任何异常,只要方法中抛出一个Exception,包括是自己设置抛出的异常,事务都进行回滚
对比1.1与2.0中事务的配置方法
配置文件如下 1.1
- <bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
- <property name="transactionManager" ref="transactionManager"/>
- <property name="proxyTargetClass" value="true"/>
- <property name="transactionAttributes">
- <props>
- <prop key="get*">PROPAGATION_REQUIRED,readOnly </prop>
- <prop key="find*">PROPAGATION_REQUIRED,readOnly </prop>
- <prop key="save*">PROPAGATION_REQUIRED,-Exception </prop>
- <prop key="remove*">PROPAGATION_REQUIRED ,-Exception </prop>
- props>
- property>
- <property name="preInterceptors">
- <list>
- <ref bean="methodSecurityInterceptor"/>
- list>
- property>
- bean>
- <bean id="bookManager" parent="baseTxService">
- <property name="target">
- <bean class="org.springside.bookstore.admin.manager.BookManager"/>
- property>
- bean>
spring 2.0 中事务配置方法
- <aop:config proxy-target-class="true">
- <aop:advisor pointcut="execution(* *..*Manager.*(..))" advice-ref="txAdvice"/>
- <aop:advisor pointcut="execution(* *..*Manager.save(..))" advice-ref="fooAdvice"/> aop:config>
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="save*"/>
- <tx:method name="remove*"/>
- <tx:method name="*" read-only="true"/>
- tx:attributes>
- tx:advice>
- <bean id="bookManager" class="org.springside.bookstore.commons.service.BookManager"/>
分享到:
相关推荐
在Spring配置中定义一个HibernateTransactionManager实例,将SessionFactory注入其中。例如: ```xml <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> ...
使用它,你可以控制事务的开始、提交、回滚以及设置事务隔离级别。 在Spring事务中,有几种常见的隔离级别可供选择,包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)...
### Spring事务与数据库...- **配置事务规则**:最后,需要配置事务规则,指定哪些方法需要在事务中执行。 ##### 1.3 示例代码 下面是一个简单的示例,展示了如何使用XML配置文件来配置Spring的声明式事务: ```xml ...
这种方法只需要在 Spring 配置文件中定义一个事务管理对象(如 DataSourceTransactionManager),然后加入 `<tx:annotation-driven/>` 节点,引用该事务管理对象,然后即可在需要进行事务处理的类和方法使用 `@...
例如,对于DAO层的UserDao,我们首先定义UserDaoTarget作为实际的实现类,然后创建一个TransactionProxyFactoryBean作为UserDao的代理,通过设置事务管理器和切面来控制事务行为。以下是一个例子: ```xml ...
在上面的配置文件中,我们可以看到 `<bean>` 元素用于定义一个名为 "sgis.sdk.transactionManager" 的事务管理器,该管理器使用数据源连接池来管理事务。 Context 文件配置: Context 文件是 Spring AOP 的核心...
Spring框架在企业级Java应用中广泛用于实现...总的来说,Spring配置JTA事务管理是一项关键任务,它确保了在分布式环境下的数据一致性。理解并正确配置JTA事务管理,能够让你的应用程序更加健壮,适应复杂的企业级需求。
根据提供的信息,我们可以深入探讨Spring框架中的声明式事务配置及其多种实现方式。声明式事务管理是一种简化事务管理的方式,它允许开发人员通过配置而非编程来指定事务边界,从而减少了代码的复杂性并提高了可维护...
Spring 支持在 XML 配置文件中使用 `<tx:advice>` 和 `<tx:annotation-driven>` 元素,以及在 Java 配置中使用 `@Transactional` 注解来声明事务。声明式事务管理使得事务管理更加透明,降低了业务代码的复杂性。 ...
在Spring配置文件中,我们需要引入`tx`命名空间,并声明一个`PlatformTransactionManager`实例,例如,对于基于JDBC的事务管理,我们会使用`<bean id="transactionManager" class="org.springframework.jdbc....
2. 开启事务:使用`@Transactional`注解标记需要在事务中执行的方法。 3. 业务逻辑:在事务中执行相关的数据库操作。 4. 提交或回滚事务:如果所有操作成功,事务将被提交;如果有异常,事务将被回滚。 在压缩包中...
可以通过`@Transactional`注解的`timeout`属性或者XML配置中的`propagation`元素的`timeout`属性来设置事务的超时时间,单位为秒。 以上就是Spring框架中常见的事务配置方式及其相关概念,理解并熟练掌握这些知识...
- **Spring AOP**:Spring AOP允许开发者将一些通用的业务逻辑(例如日志、事务管理等)从业务代码中抽离出来,形成一个独立的部分,即切面(Aspect)。这样做的好处是可以减少业务代码的耦合度,提高代码的可读性...
此外,Spring Boot简化了Spring应用的启动和配置,包括事务管理,使得在现代项目中使用声明式事务更加便捷。 总的来说,Spring声明式事务管理提供了一种强大且灵活的方式来控制事务的边界,使得事务管理与业务逻辑...
在Spring中,事务的传播行为包括`PROPAGATION_REQUIRED`(默认,必须在一个事务中运行)、`PROPAGATION_SUPPORTS`(如果存在事务,则加入,否则非事务运行)、`PROPAGATION_MANDATORY`(必须在一个存在的事务中运行...
1. **基于XML的全局事务配置**:这种方式通过在Spring配置文件中设置`<tx:advice>`和`<aop:config>`元素来实现事务管理。相比于第一种方式,这种方式更加简洁,适用于所有业务逻辑Bean。 2. **基于注解的事务配置**...
#### 在DAO中使用JdbcTemplate 在DAO层使用JdbcTemplate可以有两种方式: 1. **直接在DAO类中定义JdbcTemplate**: ```java public class AccountDao { private JdbcTemplate jdbcTemplate; public void ...
这篇博文"Spring使用XML配置声明式事务"详细介绍了如何在Spring中使用XML配置来实现这一功能。 首先,我们需要了解Spring的核心组件之一——ApplicationContext,它是Spring容器的实例,负责管理和装配我们的bean。...
接着,使用`<tx:advice>`和`<tx:attributes>`定义事务策略,例如,将所有以`insert*`、`update*`和`delete*`开头的方法设置为`REQUIRED`传播属性,意味着这些方法必须在事务中执行。最后,使用`<aop:config>`配置...
很好的spring+ibatis事务的配置文档.