我报名参与金石计划1期挑战——分割10万奖池,这是我的第3篇文章,点击查看活动详情

Spring Boot 中操作业务有两种方式:编程式业务或声明式业务,接下来咱们一同来看二者的详细完成。

1.编程式业务

在 Spring Boot 中完成编程式业务又有两种完成办法:

  1. 运用 TransactionTemplate 目标完成编程式业务;
  2. 运用愈加底层的 TransactionManager 目标完成编程式业务。

它们的详细完成代码如下。

1.1 TransactionTemplate 运用

要运用 TransactionTemplate 目标需要先将 TransactionTemplate 注入到当时类中 ,然后再运用它供给的 execute 办法履行业务并返回相应的履行结果,假如程序在履行途中呈现了异常,那么就能够运用代码手动回滚业务,详细完成代码如下:

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

1.2 TransactionManager 运用

TransactionManager 完成编程式业务相对费事一点,它需要运用两个目标:TransactionManager 的子类,加上 TransactionDefinition 业务定义目标,再经过调用 TransactionManager 的 getTransaction 获取并敞开业务,然后调用 TransactionManager 供给的 commit 办法提交业务,或运用它的另一个办法 rollback 回滚业务,它的详细完成代码如下:

面试突击82:SpringBoot 中如何操作事务?
从上述代码能够看出,运用编程式业务愈加灵敏,但写法比较费事

2.声明式业务

声明式业务的完成比较简单,只需要在办法上或类上增加 @Transactional 注解即可,当加入了 @Transactional 注解就能够完成在办法履行前,自动敞开业务;在办法成功履行完,自动提交业务;假如办法在履行期间,呈现了异常,那么它会自动回滚业务。 它的详细运用如下:

面试突击82:SpringBoot 中如何操作事务?
当然,@Transactional 支撑很多参数的设置,它的参数设置列表如下:
面试突击82:SpringBoot 中如何操作事务?
参数的设置办法如下:
面试突击82:SpringBoot 中如何操作事务?

总结

本文咱们介绍了两种业务的完成方式:编程式业务或声明式业务。其间编程式业务又分为两种完成:运用 TransactionTemplate 目标或愈加底层的 TransactionManager 目标分别完成编程式业务,它们的长处是灵敏性更高,能够在任何代码片段上增加业务;而声明式业务的完成愈加简单,只需要在类或办法上增加 @Transactional 注解即可完成业务的自动敞开和提交(以及回滚)。

是非审之于己,毁誉听之于人,得失安之于数。

公众号:Java面试真题解析

面试合集:gitee.com/mydb/interv…