写点什么

2021 大厂 Java 面试真题集锦

发布于: 12 小时前

为什么阿里巴巴的持久层抛弃 hibernate,采用 MyBatis 框架?


原因大概有以下 4 点:



尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择 MyBatis 的原因。


MyBatis 整体架构

不多讲,先看目录图



MyBatis 源码笔记文档

第 1 部分 MyBatis 入门


MyBatis 是一个容易上手的持久层框架,使用者通过简单的学习即可掌握其常用特性的用法,这也是 MyBatis 被广泛使用的原因之一。在深入分析 MyBatis 源码前,先介绍一下 MyBatis 的一些基础知识。



第 2 部分 配置文件解析过程


按照 MyBatis 启动流程,这部分将会对 MyBatis 解析配置文件的过程进行分析。我们在使用 MyBatis 框架时,通常会进行一定的设置,使其能更好的满足我们的需求。对于一个框架来说,提供较为丰富的配置文件,也是其灵活性的体现。将会介绍 MyBatis 配置文件中的大部分节点解析过程,包含但不限于 properties、settings、typeAliase、typeHandlers 等



第 3 部分 映射文件解析过程


这部分是分析映射文件解析的过程。与配置文件不同,映射文件用于配置 SQL 语句,字段映射关系等。映射文件中包含<cache>、<cache-ref>、<resultMap>、<sql><select|insert|update|delete>等二级节点,这些节点将在接下来内容中进行分析。



第 4 篇 SQL 执行流程


将对 MyBatis 执行 SQL 的过程进行较为详尽的分析。该过程比较复杂,涉及的技术点很多。



第 5 部分 内置数据源


MyBatis 支持三种数据源配置, 分别为 UNPOOLED 、POOLED 和 JNDI 。并提供了两种数据源实现,分别是 UnpooledDataSource 和 PooledDataSource 。在这三种数据源配置中, UNPOOLED 和 POOLED 是我们最常用的两种配置,这两种数据源也是本章要重点分析的对象。



第 6 篇 缓存机制


在 Web 应用中,缓存是必不可少的组件。通常都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,以减轻数据库压力。作为一个重要的组件,MyBatis 自然也在内部提供了相应的支持。通过在框架层面增加缓存功能,可减轻数据库的压力,同时又可以提升查询速度,可谓一举两得。MyBatis 缓存结构由一级缓存和二级缓存构成,这两级缓存均是使用 Cache 接口的实现类。因此本章将首先会向大家介绍 Cache 几种实现类的源码,然后再分析一级和二级缓存的实现。



第 7 篇 插件机制


开发 MyBatis 插件需要对 MyBatis 比较深了解才行,一般来说最好能够掌握 MyBatis 的源码,门槛相对较高。


最后

既已说到 spring cloud alibaba,那对于整个微服务架构,如果想要进一步地向上提升自己,到底应该掌握哪些核心技能呢?


就个人而言,对于整个微服务架构,像 RPC、Dubbo、Spring Boot、Spring Cloud Alibaba、Docker、kubernetes、Spring Cloud Netflix、Service Mesh 等这些都是最最核心的知识,架构师必经之路!下图,是自绘的微服务架构路线体系大纲,如果有还不知道自己该掌握些啥技术的朋友,可根据小编手绘的大纲进行一个参考。



如果觉得图片不够清晰,也可来找小编分享原件的 xmind 文档!


且除此份微服务体系大纲外,我也有整理与其每个专题核心知识点对应的最强学习笔记:


  • 出神入化——SpringCloudAlibaba.pdf

  • SpringCloud 微服务架构笔记(一).pdf

  • SpringCloud 微服务架构笔记(二).pdf

  • SpringCloud 微服务架构笔记(三).pdf

  • SpringCloud 微服务架构笔记(四).pdf

  • Dubbo 框架 RPC 实现原理.pdf

  • Dubbo 最新全面深度解读.pdf

  • Spring Boot 学习教程.pdf

  • SpringBoo 核心宝典.pdf

  • 第一本 Docker 书-完整版.pdf

  • 使用 SpringCloud 和 Docker 实战微服务.pdf

  • K8S(kubernetes)学习指南.pdf


需要下载的请**点击传送门:《出神入化——SpringCloudAlibaba》**



另外,如果不知道从何下手开始学习呢,小编这边也有对每个微服务的核心知识点手绘了其对应的知识架构体系大纲,不过全是导出的 xmind 文件,全部的源文件也都在此,照样可免费分享给有需要的你!



用户头像

VX:Lzzzzzz63 领取资料 2021.07.07 加入

还未添加个人简介

评论

发布
暂无评论
2021大厂Java面试真题集锦