wap网站前景,whois 查询系统,seo网站优化推荐,建网方案策划书目录 简介#xff1a;
分类#xff1a;
1.编程式事务管理#xff1a; 2. 声明式事务管理#xff1a;
3.事务传播和隔离级别#xff1a;
配置 Spring 事务管理#xff1a;
总结#xff1a; 简介#xff1a;
Spring 通过事务管理器#xff08;Transaction Manager…目录 简介
分类
1.编程式事务管理 2. 声明式事务管理
3.事务传播和隔离级别
配置 Spring 事务管理
总结 简介
Spring 通过事务管理器Transaction Manager来管理事务。不同的持久化技术如 JDBC、JPA、Hibernate对应不同的事务管理器例如
DataSourceTransactionManager用于管理 JDBC 事务。JpaTransactionManager用于管理 JPA 事务。HibernateTransactionManager用于管理 Hibernate 事务。 事务管理器是 Spring 事务管理的核心它负责处理事务的开始、提交和回滚。
分类
1.编程式事务管理
编程式事务管理是指在代码中显式地管理事务通常使用 TransactionTemplate 或者底层的 PlatformTransactionManager。
使用 TransactionTemplate
Autowired
private TransactionTemplate transactionTemplate;public void someMethod() {transactionTemplate.execute(status - {// 执行业务逻辑// status.setRollbackOnly(); // 回滚事务return null;});
}
使用 PlatformTransactionManager
Autowired
private PlatformTransactionManager transactionManager;public void someMethod() {DefaultTransactionDefinition def new DefaultTransactionDefinition();TransactionStatus status transactionManager.getTransaction(def);try {// 执行业务逻辑transactionManager.commit(status); // 提交事务} catch (Exception e) {transactionManager.rollback(status); // 回滚事务}
} 2. 声明式事务管理
声明式事务管理是通过 AOP面向切面编程和注解来管理事务通常使用 Transactional 注解。这种方式更加简洁和方便推荐使用。
使用 Transactional 注解
import org.springframework.transaction.annotation.Transactional;Service
public class MyService {Transactionalpublic void someMethod() {// 执行业务逻辑}
}
3.事务传播和隔离级别
事务传播和隔离级别是 Spring 事务管理的重要概念。
事务传播Propagation定义了事务方法被调用时事务的传播行为。例如当前方法是否要在一个事务中运行是否要加入现有的事务或者是否要开启一个新的事务。 隔离级别Isolation定义了一个事务可以看到其他事务对数据的影响程度。常见的隔离级别包括READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ、SERIALIZABLE。
配置 Spring 事务管理
在 Spring Boot 中只需要在主类或者配置类中添加 EnableTransactionManagement 注解
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;Configuration
EnableTransactionManagement
public class AppConfig {// 配置数据源和事务管理器等
}
使用 Transactional 注解
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;Service
public class UserService {Transactionalpublic void createUser(User user) {// 创建用户的业务逻辑}
}
总结
Spring 的事务管理机制通过编程式事务管理和声明式事务管理两种方式提供了灵活的事务控制。声明式事务管理是最常用的方式通过 Transactional 注解可以方便地控制事务的传播行为、隔离级别、超时时间和回滚规则。