Spring中的事务控制:
spring中的事务控制分为两种,一种是声明式事务,一种式编程式事务,编程式事务于spring中解耦的核心思想有些冲突,所以实际开发中一般采用声明式事务。
1.前期准备:
开发环境:
IDAD 2.18.3
jdk 1.8
maven 3.5
以及spring所需要的各类jar依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>MySQL</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
</dependencies>
既然式用纯注解的方式来编写aop和事务控制,那么我们就应该把相应的配置工具类准备好
先创建一个类,只声明是spring的配置类,打上@Configuration注解等
@ComponentScan( "welness")
@Import({
JDBCTemplateConfig.class,TransactionManagerConfig.class})//导入其他的配置类
@Configuration//本类作为spring的配置核心类
@EnableAspectJAutoProxy//开启spring的aop支持
@EnableTransactionManagement//开始spring的注解支持
public class SpringConfiguration {
}
配置切面类
@Component("aspect")//加入spring的容器中
@Aspect//声明此类为切面
public class AspectLogger {
</