1.什么是声明式事务控制
Spring的声明式事务:采用声明的方式来处理事务。
声明指的是在配置文件中声明,用在Spring配置文件中声明式的处理事务来代替代码式的处理事务。
Spring声明式事务控制底层就是AOP
主要注意的点:谁是切点,谁是通知,配置切面
2.基于XML的声明式事务控制
-
引入tx命名空间(Pom.xml引入
-
配置事务增强
-
配置事务AOP织入(ApplicationContext.xml
-
测试
tx:method 表示切点方法的事务参数的配置
Name: 切点方法的名称
Isolation:事务的隔离级别
Propogation:事务的传播行为
Timeout:超时时间
Read-only:是否只读
例子:计算库存与售出数量,若售出50件商品,库存数量减50,售出数据加50
** 引入tx命名空间(Pom.xml引入**
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Lab5-SpringAOP-2.1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version></