1、首先配置需要依赖的jar包
<!--aop需要依赖的包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!--spring事务相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.1.12.RELEASE</version>
</dependency>
2、配置spring处理事务的处理策略
<!-- 配置spring事务管理器,mybatis使用DataSourceTransactionManager,hibernate使用HibernateTransactionManager -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="musesfrontdb" />
</bean>
<!-- 启用注解方式定义事务时需要配置 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!--也可以在配置类上加上注解@EnableTransactionManagement-->
以上两部分必须首先引入spring的配置文件,并且引入tx命名空间,这样才能使用spring的声明式事务@Transactional
事务的四个特性:原子性、隔离性、一致性、持久性
事务最重要的两个特性,是事务的传播级别和数据隔离级别。传播级别定义的是事务的控制范围,事务隔离级别定义的是事务在数据库读写方面的控制范围。