美文网首页开发技巧Java学习笔记Java 杂谈
你见过京东T5是怎样深度解析MyBatis源码架构设计原理的吗

你见过京东T5是怎样深度解析MyBatis源码架构设计原理的吗

作者: Java斗帝之路 | 来源:发表于2020-07-21 14:27 被阅读0次

    首先我只想和大家聊聊架构设计中的一个核心问题:关注点分离。因为这个问题同样也是 MyBatis 框架需要解决的核心问题

    关注点分离

    关注点分离所对应的英文是 Separation of Concerns ,简称 soc 。它是最经典的架构设计原则之一 ,在许多架构设计中被广泛使用。关注点分离原则为我们的架构设计提出了三点要求。

    架构中需要变化的部分, 定要能够非常清晰地被识别出来

    若架构中某部分发生变化,则该变化不会影响到其他部分。

    若架构中某部分需要扩展,则该扩展也不会影响到其他部分

    架构能做到关注点分离,才能做到真正意义上的解耦,这是架构师们需要努力实现的目标。如果大家要 问, 关注点分离做得最有效的落地实践是什么?我们首先能想到的就是“前后端分离”。

    前后端分离

    曾经我们开发 Web 应用程序时,对前端和后端的概念不太清晰,开发者们逐渐认为前端和后端有必要进行分离了,前端需要考虑界面展现与数据展现问题,后端需要考虑业务逻辑与数据逻辑问题。可见,前端和后端所关注的问题是完全不同的,应该在架构上将它们进行分离此外,在团队协作上也能将前端与后端这两部分的工作进行分离,因此出现了前端工程师端工程师这两个不同岗位。这样分工绝不是偶然的,它不仅让架构变得更加解耦,还能显著地提升团队的开发效率。

    针对前端工程师而言,需要将界面展现与数据展现相分离:针对后端工程师而言,不仅要清晰地理解业务逻辑,善于将数据进行合理的建模,最终还要做到将业务逻辑与数据逻辑相分离。

    业务逻辑与数据逻辑相分离

    业务逻辑对于我们而言已经很清楚了,但数据逻辑包括哪些呢?最直接的就是一个个对应于数据库中每张数据表的实体对象,它有 个很好听的名字:数据访问对象,即 Data AccessObject ,简称 DAO 。很明显 ,这 层数据直接和底层数据库打交道,我们将它们从业务逻辑中分离出来,并加以封装。也就是说,没必要为每 DAO 对象初始化的过程去编写大量的代码,这些代码应该封装到 个框架中。我们只需要编写相应的 SQL 语句,并将这些 SQL句从业务代码中分离出来,最终将执行 SQL 语句所得到的结果集映射到 DAO 对象中即可

    不知道大家对我刚刚提到的“关注点分离”有怎样的理解。无论大家理解或深或浅,毫无疑问,这个问题都已成为架构中最核心的部分。

    MyBatis 就是这样的框架一一它能帮助我们将业务逻辑与数据逻辑相分离,让开发应用程序的过程变得更加高效。究竟 MyBatis 中隐藏着怎样的奥秘?不要急,这本书将为大家揭晓答案

    内容介绍

    本书中从一个简单的 MyBatis 查询入手,搭建起学习 MyBati 的基础开发环境。通过全面的示例代码和测试讲解了在 MyBatis XML 方式和注解方式中进行增、删、改、查操作的基本用法,介绍了动态 SQL在不同方面的应用以及在使用过程中的最佳实践方案。针对 MyBatis 高级映射、存储过程和类型处理提供了丰富的示例,通过自下而上的方法使读者更好地理解和掌握 MyBatis 的高级用法,同时针对 MyBatis的代码生成器提供了详细的配置介绍。此外,本书还提供了缓存配置、插件开发、 Spring Spring Boot成的详细内容。最后通过介绍 Git GitHub 让读者了解 MyBatis 开源项目,通过对 MyBatis 源码和测试用例的讲解让读者更好掌握 MyBatis。(需要完整PDF版的转发此文后私信小编“666”获得免费领取方式)

    全书共11章,每一章的具体内容如下。

    第一章、MyBatis 入门

    本章先简单介绍了 MyBati 发展历史和特点,然后通过一步步的操作搭建了一个学习MyBatis 基础环境,这个开发环境也是学习后续几个章节的基础。

    第2章、MyBatis XML方式的基本用法

    本章设定了一个简单的权限控制需求,使用MyBatisXML方式实现了数据库中一个表的常规操作。在查询方面,通过根据主键查询和查询全部两个方法让读者在学会使用MyBatis查询方法的同时,还深入了解MyBatis返回值的设置原理。在增、删、改方面提供了大量详细的示例,这些示例覆盖了MyBatis基本用法的方方面面。

    第3章、MyBatis注解方式的基本用法

    虽然XML方式是主流,但是仍然有许多公司选择了注解方式,因此本章非常适合使用注解方式的读者。本章使用注解方式几乎实现了同XML方式类似的全部方法,包含许多常用注解的基本用法。对于初学者来说,即使不使用注解方式,通过本章和第2章的对比也可以对MyBatis有更深的了解。

    第4章、MyBatis动态SQL

    本章详细介绍了MyBatis 最强大的动态SQL功能,通过丰富的示例讲解了各种动态SQL的用法,为动态SQL中可能出现的问题提供了最佳实践方案,还提供了动态SQL中常用的OGNL用法。

    第5章、MyBatis 代码生成器

    本章介绍的MyBatis代码生成器可以减轻基本用法中最繁重的那部分书写工作带来的压力。通过本章的学习,可以使用代码生成器快速生成大量基础的方法,让大家更专注于业务代码的开发,从枯燥的基础编码中解脱出来。

    第6章、MyBatis 高级查询

    本章介绍了MyBatis 中的高级结果映射,包括一对一 -映射、- 对多映射和鉴别器映射。通过循序渐进的代码示例让读者轻松地学会使用MyBatis中最高级的结果映射。本章还通过全面的示例讲解了存储过程的用法和类型处理器的用法。

    第7章、MyBatis 缓存配置

    本章讲解了MyBatis缓存配置的相关内容,提供了EhCache缓存和Redis 缓存的集成方法。虽然二级缓存功能强大,但是使用不当很容易产生脏数据。本章针对脏数据的产生提供了最佳解决方案,并且介绍了二级缓存适用的场景。

    第8章、MyBatis 插件开发

    本章介绍了MyBatis强大的扩展能力,利用插件可以很方便地在运行时改变MyBatis的行为。通过两个插件示例让读者初窥门径,结合第11章的内容可以让读者开发出适合自己的插件。

    第9章、Spring 集成MyBatis

    本章介绍了最流行的轻量级框架Spring集成MyBatis的方法,通过一.步步操作从零开始配置,搭建一个基本的Spring、Spring MVC、MyBatis 开发环境。

    第10章、Spring Boot集成MyBatis

    本章介绍了最流行的微服务框架SpringBoot集成MyBatis的方法,通过MyBatis官方提供的Starter可以很方便地进行集成。同时,本章对Starter 中的配置做了简单的介绍,可以满足读者对MyBatis各项配置方面的需要。

    第11章、MyBatis开源项目

    本章是一扇通往开源世界的大门,也是- -扇通往MyBatis源码学习的大门。从Git入门到GitHub入门,读者可以学会使用最流行的分布式版本控制系统和源代码托管服务。通过一段代码让大家了解MyBatis中的一部分关键类, 通过代码包讲解可以了解MyBatis每个包中所含的功能。最后通过MyBatis丰富的测试用例为读者提供更多更有用的学习内容。

    总结

    本书的目标是让大家能够熟练地使用MyBatis,并且希望通过MyBatis这样一个开源项目学习到更多的知识,通过GitHub参与到开源项目中去。我坚信,通过我们自身不断的学习和积累,有朝一日,我们一定能开发出一个方便自己也方便他人的开源项目。(转发+关注后私信“666”获得315页MyBatis完整PDF版免费获取方式)

    相关文章

      网友评论

        本文标题:你见过京东T5是怎样深度解析MyBatis源码架构设计原理的吗

        本文链接:https://www.haomeiwen.com/subject/gnyikktx.html