Skip to content

结束语师傅领进门,修行靠个人

你好,专栏的学习到这里已经进入尾声了,不知道这 32 讲的内容,是否对你有帮助。那么这一讲我们来回顾一下整个课程的内容。

课程回顾

本专栏一共分为四个部分:基础知识、高级用法与实践、原理与问题排查以及思路扩展。这四个部分的内容,完整地为你呈现了 Spring Data JPA 的基本用法,以及工作中的一些最佳实践,并且几乎在每一讲中,我都带你利用源码剖析了核心原理。

基本用法方面

希望你能够熟练掌握如下内容:

  1. JPA 的 Repository 的用法;

  2. Defining Query Method 的用法,以及不同的参数和返回结果是如何实现的;

  3. 熟练使用 @Query 查询,以及 @Entity、@EntityGraph、Jackson 等方面的注解;

  4. 熟知 JPA 对 WebMVC 做的支持有审计、分页、排序和参数扩展;

  5. 学会自定义 Repository;

  6. 掌握多数据源的配置方法。

原理方面

希望你能掌握如下内容,并能熟练解决实际工作中的高级问题。

  1. 数据源、连接池、、Connection、事务、Session 分别是什么,以及它们之间的关系是怎么样的;

  2. 掌握 Persistence Context、数据的 flush 时机、flush 对事务的影响;

  3. 了解 Open-in-view 是如何对 Lazy Exception 产生影响的,Lazy 的原理又是什么;

  4. 知道 N+1 SQL 指的是什么、如何产生的,解决的方法有哪些。

其实以上列举这些问题都可以从课程中获取答案。同时你还可以通过我为你提供的思路扩展篇,感受一下 JPA 的实体预定给未来的协议带来的影响,那时你就知道了 Spring Data 的强大之处。

因此可以说,学好 Spring Data 是非常重要的,从中我们可以学习到"Spring 大神们"强悍、抽象的封装能力,并且可以大大地提高日常开发效率。

修行靠个人

在课程中,我所总结的经验是有限的,可能无法考虑到全部场景,所以这门专栏我只是把个人所见尽可能地分享给你作为参考。

其实 Spring 的版本是不断变化的,源码也不断在改进。所以希望通过学习,你可以掌握文中我所介绍的学习方法以及阅读源码的技巧,并不断修炼、思考,找到属于自己的学习方法论。

如果你能完整地把课程看完,接下来一定要付诸行动。在工作中,不断总结遇到的疑难杂症,想想原理,同时善于思考并且积极解决,这样自己才能真正地成长。

我也欢迎你能把遇到的一些难题提交到 Github 里面对应的 issue。

关于个人修行方面,我在此给你几点建议:

  1. 掌握学习思路,总结出来自己的一套方法论;

  2. 学会看源码,学会 debug,看完专栏课程或者是官方的文档后,要学会通过源码对应理解,这样才能验证别人说的是否合理,因为文章可能会过时,但是源码一定不会骗人;

  3. 学会举一反三,掌握解决问题的思路,凡事想一下最佳实践是什么,是否有什么更优解;

  4. 如果你写出来的代码或者逻辑别人不好理解,那么肯定有改进空间。

最后,当我们万事俱备的时候,就期待一下未来的变化吧。

未来可期

我个人感觉,Spring Data JPA 的抽象和封装还是非常灵活的,它绝对被行业所低估了。

如果是 Spring 项目,你会发现身边很多新的项目会逐渐采用 Spring Data 这套体系,那么当你熟悉和掌握得非常精通之后,你会发现你再也不想用 Mybatis 了,因为工作太烦琐了,这就好比刚开始你不习惯在用 Mac 笔记本的时候不用鼠标,但是一旦你习惯了 Mac 的触摸板,就再也不想用鼠标了。同理,当你掌握了高效率的工作方式、编程方式之后,你就会发现那些低效率的开发实在是太费事了。

总之呢,学习就是一场永无止境的修行。我希望你能通过学习有个好的发展,成为某些领域的大神。同时保持好心态,积极与同行交流,这样才能共同成长。也欢迎你分享自己的 JPA 使用经验,我们一同探讨。

另外,我想了解你对这门课程的看法,希望你可以点击链接参与课程反馈,将有机会获得小礼物,你的观点可以帮助我们更好地成长。

我是张振华,很高兴遇见你,后会有期。