一、Spring的xml头配置需要增加tx命名空间
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"
default-autowire="byName">
二、配置注解事务
1、XML配置
其中<tx:annotation-driven transaction-manager="transactionManager" />告诉Spring检查上下文中所有的Bean并查找使用@Transactional注解的Bean,
不管是方法级别的还是类级别的。需要将数据源配置在这个标签中。
在方法上标注@Transactional就会在方法前后加事务,类上的话会在类的所有方法上前后加上事务。
1)Spring的xml配置(适用于JDBC、Mybatis)
<!-- 注解方式配置事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dynamicDataSource"/>
</bean>
2)Spring的xml配置(适用于 Hibernate )
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
2、代码中注解配置
在需要的方法或者类上表注上@Transactional
类上标注说明这个类的方法都是支持事务的,方法上加的话说明这个方法是支持事务的。