声明式事务概念

一 Spring的事务机制

所有的数据访问技术都有事务机制,这些技术都提供了API用来开启事务、提交事务来完成数据操作,或者在发生错误的时候回滚数据。

Spring的事务机制是用统一的机制来处理不同数据访问技术的事务处理。Spring的事务机制提供了一个PlatformTransactionManager接口。代码如下:

public interface PlatformTransactionManager {
    TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException;
    void commit(TransactionStatus status) throws TransactionException;
    void rollback(TransactionStatus status) throws TransactionException;
}

不同的数据访问技术的事务使用不同的接口实现,如下图。

在程序中定义事务管理器的伪代码如下:

@Bean
public PlatformTransactionManager transactionManager(){
    JpaTransactionManager transactionManager = new JpaTransactionManager();
    transactionManager.setDataSource(dataSource());
    return transactionManager;
}

二 声明式事务

Spring支持声明式事务,即使用注解来选择需要使用事务的方法,它使用@Transactional注解在方法上表明该方法需要事务支持。这是一个基于AOP的实现操作。被注解的方法在被调用时,Spring开启一个新的事务,当方法无异常运行结束后,Spring会提交这个事务。

伪代码如下:

@Transactional
public void savesomething(Long id,String name)
{
    //数据库操作
}

在此需要特别注意的是,此@Transactional注解来自org.springframework.transaction.annotation

Spring提供了一个@EnableTransactionManagement注解在配置类上开启声明式的支持。使用了@EnableTransactionManagement后,Spring容器会自动扫描@Transactional的方法和类。

@EnableTransactionManagement的使用方式如下:

@EnableTransactionManagement
public class AppConfig
{
}

三 参考

https://blog.csdn.net/zhangzhihuaniubi/article/details/82455122

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值