学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。
学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。我们在刚出生的时候,什么也不知道,是一张真正的白纸,我们靠学习的本能,学会了走路、说话、穿衣服…后来,我们上学了,老师把书本上的知识一点一点灌输到我们的脑子里,我们掌握的知识越来越多,与此同时,我们学习能力却好像越来越差了,习惯了被别人喂饱,似乎忘记了怎么来喂自己了。
学习本来只是一种本能,算不上什么能力,然而,经过二十多年的不断学习,学习反而成为了一种真正的能力,因为我们慢慢失去了它,它就更显得珍贵。
作为一个程序员,不断的学习更是重要,不学新的知识就迟早会被淘汰掉
随着Java技术和微服务技术逐渐广泛应用,SpringCloud、Spring Boot逐渐统一Java的框架江湖。市场上的ORM框架也逐渐被人重视起来。
Spring Data逐渐走入Java开发者的视野,被很多架构师作为ORM框架的技术选型。市场上没有对Spring Data JPA的完整介绍。资料比较零散,很难一下子全面、深入地掌握SpringDataJPA。
本文注重从实际出发来提高从事Java开发者的工作效率,可以作为一本很好的自我学习手册和Spring Data JPA的查阅手册。
“不仅授之以鱼,还授之以渔”,不仅告诉大家是什么、怎么用,还告诉大家学习步骤、怎么学习,以及原理、使用技巧与实践。
全文以SpringBoot为技术基础,从入门到精通,由浅入深地介绍和使用Spring Data JPA,很适合Java的初学者从此弯道超车,走上Spring全家桶学习的快车道。
纵观市场上的ORM框架,MyBitas以灵活著称,但是要维护复杂的配置,并且不是Spring官方的天然全家桶,还得做额外的配置工作,即使是资深的架构师也得做很多封装;
Hibernate以HQL和关系映射著称,但是使用起来不是特别灵活。这样Spring Data JPA来了,感觉
要夺取ORM的JPA霸主地位了,它底层以Hibernate为封装,对外提供了超级灵活的使用接口,又非常符合面向对象和REST的风格,越来越多的API层面的封装都是以Spring Data JPA为基础的,感觉是架构师和开发者的福音。
Spring Data JPA与Spring Boot配合起来使用具有天然的优势,你会发现越来越多的公司招聘会由传统的SSH、Spring、MyBitas技术要求逐步地变为Spring Boot、Spring Cloud、Spring Data等Spring 全家桶技术的要求。
本文以Spring Boot为开发基础和线索,大量采用了UML释义的讲解方式。
全文分为3个部分,共12章的内容。
(1)基础部分:整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解,了解SpringData JPA的基本使用和语法。
第1章整体认识JPA,从整体到局部,先来整体认识一下Spring Data JPA。
第2章JPA基础查询方法,本章学习Spring Data Common里面的公用基本方法。
第3章定义查询方法,本章详细讲解如何利用方法名定义查询方法(DefiningQueryMethods)。
第4章注解式查询方法,本章详细讲解声明式的查询方法,即注解的查询用法大全。
第5章@Entity实例里面常用注解详解,本章详细介绍javax.persistence下面的Entity中常用的注解。学习的基本条件是要对Java的注解有基本的了解。
(2)晋级之高级部分:JpaRepository详解、JPA的MVC扩展Rest支持、DataSource的配置、乐观锁等,了解其背后的实现动机及其原理。
第6章JpaRepository展详解,本章我们主要介绍JpaRepostiory扩展的方法:简单的应用场景和实际工作中稍微复杂的应用场景。
第7章Spring Data JPA的扩展,本章主要介绍Spring Data JPA的一些扩展部分,也非常重要,有利于提高工作效率和代码的优雅度。
第8章DataSource的配置,本章我们讲解一下数据源配置的一些事情。
(3)延展部分:SpEL表达式在Spring Data里面的应用、SpringData Redis实现cacheable的实践、IntelliJ IDEA加快开发效率、Spring Data Rest的介绍,直至整个Spring Data的生态。
第9章IntelliJ IDEA与Spring JPA,
第10章Spring Data Redis详解,Jedis是最受欢迎的Redis的Java版本的Client的实现端。这种使用方式属于裸用,就是不加任何修饰,直接通过Jedis操作Redis的N多特性。
第11章SpEL表达式讲解,SpEL是Spring Expression Language的简称。SpEL的诞生是为了给Spring社区提供一种能够与Spring生态系统所有产品无缝对接、一站式支持的表达式语言。它的语言特性由Spring生态系统的实际项目需求驱动而来。
第12章Spring Data REST,本章主要介绍如何利用Spring Data REST快速搭建RESTFul风格的API的Server端。REST风格的 Web API服务已成为在Web上应用程序集成的首选方式。市场上都在争相定义REST风格的JSON API返回格式,并且提供相应的解决方案。
本文示例代码下载地址:
https://github.com/zhangzhenhuajack/spring-data-jpa-guide
周立、一号店CTO韩军、张开涛、徐雷、林晓辉 、Spring Cloud中国社区创始人许进、DaoCloud首席架构师王天青
联袂推荐