阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。。

本文探讨了阿里巴巴选择MyBatis作为持久层框架的原因,强调了MyBatis源码的优秀设计,尤其是其高度定制化和低耦合特性。在内容中,作者提到了MyBatis的一级缓存与Spring框架声明式事务可能存在的冲突,以及如何解决这类问题。此外,文章还鼓励读者通过阅读源码来提升技术能力,特别是在面对大数据量挑战时,理解框架底层原理的重要性。文章提供了一些学习资源,帮助读者深入掌握MyBatis和Spring。
摘要由CSDN通过智能技术生成

前言

最近一直在研究MyBatis源码,作为国内经常使用的持久层框架,其内部代码的设计非常优秀。比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性、低耦合性的代码,便于在自己的开发场景中应用。

而在Mybatis中,缓存是一个绕不开的话题。比如说,MyBatis的一级缓存竟然还会引来麻烦?

MyBatis 一级缓存与 SpringFramework 的声明式事务有冲突吗?在 Service 中开启事务,连续查询两次同样的数据,结果两次查询的结果不一致。这些应该如何解决?

  • 使用 Mapper 的 selectById 查出来实体,修改实体的属性值,然后再 selectById
    查找实体,发现之前查出来的是刚才修改过的实体,不是由数据库查出来的
  • 如果不开启事务,则两次请求查询的结果是相同的,控制台打印了两次 SQ

然而大多数人对Mybatis框架的理解仅仅局限于使用,并不熟悉框架底层的实现原理。但MyBatis框架在互联网大厂是非常重要的角色,比如说阿里巴巴的持久层抛弃hibernate,采用的就是MyBatis框架

在这里插入图片描述

源码阅读能力的提升是一线开发人员的标配。目前技术主流框架组合MyBatis + Spring 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值