我报名参与金石计划1期挑战——分割10万奖池,这是我的第3篇文章,点击查看活动详情
在 Spring Boot 中操作业务有两种方式:编程式业务或声明式业务,接下来咱们一同来看二者的详细完成。
1.编程式业务
在 Spring Boot 中完成编程式业务又有两种完成办法:
- 运用 TransactionTemplate 目标完成编程式业务;
- 运用愈加底层的 TransactionManager 目标完成编程式业务。
它们的详细完成代码如下。
1.1 TransactionTemplate 运用
要运用 TransactionTemplate 目标需要先将 TransactionTemplate 注入到当时类中 ,然后再运用它供给的 execute 办法履行业务并返回相应的履行结果,假如程序在履行途中呈现了异常,那么就能够运用代码手动回滚业务,详细完成代码如下:
1.2 TransactionManager 运用
TransactionManager 完成编程式业务相对费事一点,它需要运用两个目标:TransactionManager 的子类,加上 TransactionDefinition 业务定义目标,再经过调用 TransactionManager 的 getTransaction 获取并敞开业务,然后调用 TransactionManager 供给的 commit 办法提交业务,或运用它的另一个办法 rollback 回滚业务,它的详细完成代码如下: 从上述代码能够看出,运用编程式业务愈加灵敏,但写法比较费事。
2.声明式业务
声明式业务的完成比较简单,只需要在办法上或类上增加 @Transactional 注解即可,当加入了 @Transactional 注解就能够完成在办法履行前,自动敞开业务;在办法成功履行完,自动提交业务;假如办法在履行期间,呈现了异常,那么它会自动回滚业务。 它的详细运用如下: 当然,@Transactional 支撑很多参数的设置,它的参数设置列表如下: 参数的设置办法如下:
总结
本文咱们介绍了两种业务的完成方式:编程式业务或声明式业务。其间编程式业务又分为两种完成:运用 TransactionTemplate 目标或愈加底层的 TransactionManager 目标分别完成编程式业务,它们的长处是灵敏性更高,能够在任何代码片段上增加业务;而声明式业务的完成愈加简单,只需要在类或办法上增加 @Transactional 注解即可完成业务的自动敞开和提交(以及回滚)。
是非审之于己,毁誉听之于人,得失安之于数。
面试合集:gitee.com/mydb/interv…