尝试Spring Data Jpa--告别CRUD

  说到我们的web开发架构分层中,持久层是相对底层也是相对稳定的一层,奠定好根基后,我们才能专注于业务逻辑和视图开发。而自从ORM思想蔓延开来后,全自动ORM的Hibernate和半自动ORM的MyBatis几乎垄断了持久层(当然还有很多公司或者大牛自己封装的框架,不过相对占小部分),是发展过程中比较主流的两款持久层框架。前段时间也关注了很多有关领域驱动设计的内容,感觉对前面的传统架构分层冲击较大,尤其是业务逻辑层、持久层、实体ORM那块,引入了许多新概练,一时间也遇到了很多困惑,网上搜索资料发现领域驱动其实由来已久,目前也应用很多,但是想要完全掌握,并不是一件容易事。当然本文跟领域驱动并无直接关联,现在的问题是在面试题“Hibernate和MyBatis的区别”背景下,我们在持久层还有第三种典型选择吗,其实是有的,那就是本文的主角,Spring Data Jpa。  

    介绍

  说起Jpa,其实它并不是一个新概念,更不是说有了Spring Data Jpa才出现,它是Java Persistence API的简称,中文名Java持久层API,它是一种规范,例如Hibernate框架即实现了这种规范,Spring Data Jpa中便集成了Hibernate的模块。Spring Data,看名字很容易知道又是Spring系列的,除了Spring MVC在web层的成功,在持久层这块Spring也想拿下,大有想一统江湖的势头。另外去深入关注Spring Data内容,还会发现,不仅仅是RDBMS,还有Spring Data Redis、Spring Data Mongodb等等...本文内容主要是针对关系型数据库,本人在使用过程中,最看好的还是其在通用持久化方面的简易封装,基于层层的泛型继承,我们可以省略大量的简单增删改查方法的编码,另外提供的通过特定格式方法命名简化方法定义过程也很特别和好用。下面就基于Spring Data编写一个单独的简单持久层实例来展现其使用过程。    

  准备环境

  Eclipse + MySql + Maven

  基于传统几大框架的开发目前已经相对成熟很多了,但是就实际工作开发环境中,笔者最强烈的感受有一点,配置!配置文件实在太多了!特别是多工程组合集成的时候,漫天飞的XML和properties真是让人头大。所以建议现在学习过程中一定要尽量搞懂配置中每段配置语句的含义,哪个参数有什么作用,这样进入实际开发中才不会一时间无章可循。本文中配置尽量给出注释来阐述含义。

  在eclipse新建一个普通maven项目,quickstart类型,项目结构大致如下

尝试Spring Data Jpa--告别CRUD

  pom.xml依赖如下

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyffs.html