华人澳洲中文论坛

热图推荐

    面试突击82:SpringBoot 中如何操作事务?

    [复制链接]

    2022-9-13 09:35:16 22 0



    在 Spring Boot 中操作事务有两种形式:编程式事务或声明式事务,接上去咱们一同来看两者的详细完成。
    1.编程式事务
    在 Spring Boot 中完成编程式事务又有两种完成办法:
    使用 TransactionTemplate 对象完成编程式事务;使用更为底层的 TransactionManager 对象完成编程式事务。它们的详细完成代码如下。
    1.1 TransactionTemplate 使用
    要使用 TransactionTemplate 对象需求先将 TransactionTemplate 注入到以后类中 ,而后再使用它提供的 execute 办法履行事务并前往相应的履行后果,假如顺序在履行途中泛起了异样,那末就能使用代码手动回滚事务,详细完成代码如下:


    1.2 TransactionManager 使用
    TransactionManager 完成编程式事务相对于费事一点,它需求使用两个对象:TransactionManager 的子类,加之 TransactionDefinition 事务定义对象,再经过调用 TransactionManager 的 getTransaction 获得并开启事务,而后调用 TransactionManager 提供的 co妹妹it 办法提交事务,或使用它的另外一个办法 rollback 回滚事务,它的详细完成代码如下:


    从上述代码能够看出,使用编程式事务更为灵敏,但写法对比费事
    2.声明式事务
    声明式事务的完成对比简略,只需求在办法上或类上添加 @Transactional 注解便可,当参加了 @Transactional 注解就能完成在办法履行前,自动开启事务;在办法胜利履行完,自动提交事务;假如办法在履行期间,泛起了异样,那末它会自动回滚事务。
    它的详细使用如下:


    固然,@Transactional 反对得多参数的设置,它的参数设置列表如下:


    参数的设置办法如下:


    总结
    本文咱们引见了两种事务的完成形式:编程式事务或声明式事务。其中编程式事务又分为两种完成:使用 TransactionTemplate 对象或更为底层的 TransactionManager 对象分别完成编程式事务,它们的优点是灵敏性更高,能够在任何代码片断上添加事务;而声明式事务的完成更为简略,只需求在类或办法上添加 @Transactional 注解便可完成事务的自动开启和提交(以及回滚)。

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题38

    帖子46

    积分211

    图文推荐