浅析SpringDataJpa继承结构

时间:2022-12-26 15:16:13

一、SpringDataJpa的含义:

  SpringDataJpa: 是Spring基于ORM框架、JPA规范封装的一套JPA应用框架,是SpringData中的一个子模块,可让开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查、排序、分页等在内的常用功能,主要针对的就是 Spring 的业务逻辑代码。

  它是JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL的查询语句 ,是属于Spring的生成体系中的一部分。

二、SpringDataJpa的继承结构:

  SpringDataJpa的优点:它的Dao层只需要写接口,不需要写实现类,只需要写一个接口继承JpaRepository接口即可,该接口有两个泛型<T,ID>,在Dao层接口里可以什么都不用写。

T:domain实体类类型

ID:domain实体类的主键字段类型

    浅析SpringDataJpa继承结构浅析SpringDataJpa继承结构

  SpringDataJpa继承结构图分析:

  1、JpaRespository、PagingAndSortingRepository、CrudRepository三个接口都添加了@NoRepositoryBean注解【只要添加这个注解,Spring在扫描到有这个注解    的接口的时候就不用生成实现类,就不用创建bean对象】。

  2、我们自定义的IEmployeeRepository接口没有添加这个注解,那么Spring在扫描到这个接口的时候,就会给这个接口创建对象,但是这个接口却没有实现类,那SpringDataJpa就会利用动态代理技术给这个接口自动生成一个实现类,然后进行动态编译、类加载、反射来创建对象,最后保存到Spring容器中,这样就不用自己手动写Dao层实现类也可以获得Dao层接口的对象,然后使用@Autowired进行自动注入了。

  3、其实SpringDataJPA内部已经写了一个实现类实现了JPARepository接口,已经实现了JpaRespository、PagingAndSortingRepository、CrudRepository这三个接口中的所有抽象方法,SpringDataJPA自动帮我们生成的实现类会自动:

    实现IEmployeeRepository接口,

    继承SimpleJapRepository类,

最终我们得到(注入)的那个对象其实本质是SimpleJapRepository类的子类对象!!!

4、 因为SpringDataJPA自动帮我们生成的类继承了SimpleJPARepository类,并且实现了IEmployeeRepository接口,所以创建对象之后就可以调用直接JpaRespository、PagingAndSortingRepository、CrudRepository这三个接口中的所有方法了,因为SimpleJPARepository类已经帮我们将所有抽象方法都实现了。

浅析SpringDataJpa继承结构的更多相关文章

  1. JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 一.http协议回顾: 在上一篇文章中:JavaW ...

  2. QT类的继承结构

    QT类的继承结构 QT的类 core 数据集合 QString 几何类 QPoint QSize QRectangle 系统类 QColor QFont QImage QIcon QCursor QB ...

  3. &lpar;转)JavaWeb学习之Servlet(二)----Servlet的生命周期、继承结构、修改Servlet模板

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140466.html 一.http协议回顾: 在上一篇文章中:JavaW ...

  4. Java -- 异常的捕获及处理 -- 异常类的继承结构

    7.1.3 异常类的继承结构 在整个Java的异常结构中,实际上有两个最常用的类,分别为Exception和Error,这两个类全都是Throwable的子类. ⊙ Exception : 一般标识的 ...

  5. UIView常用属性与方法&sol;UIKit继承结构

    UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDy ...

  6. Servlet学习笔记【1】--- 背景和基础知识(CGI、Web服务器发展史、Servlet简介、任务、继承结构)

    本文主要讲Servlet的基础知识和背景知识. 1 CGI简介 CGI(Common Gateway Interface 公共网关接口)是WWW技术中最重要的技术之一,有着不可替代的重要地位.CGI是 ...

  7. Java-IO流的继承结构

    一  IO流的继承结构如下 二  字节流 1.InputStream(字节流读取数据),为抽象类,不可创建对象:其具体实现需要通过子类FileInputStream(读取文件数据).BufferedI ...

  8. 精通AngularJS(三)深入scope,继承结构,事件系统和生命周期

    深入探讨 Scope 作用域 每一个 $scope 都是类 Scope 的一个实例.类 Scope 拥有可以控制 scope 生命周期的方法,提供事件传播的能力,并支持模板渲染. 作用域的层次结构 让 ...

  9. 浅析JVM内存结构和6大区域(转)举例非常好

    内存作为系统中重要的资源,对于系统稳定运行和高效运行起到了关键的作用,Java和C之类的语言不同,不需要开发人员来分配内存和回收内存,而是由JVM来管理对象内存的分配以及对象内存的回收(又称为垃圾回收 ...

随机推荐

  1. Raw-OS源代码分析之消息系统-Queue&lowbar;Size

    分析的内核版本号截止到2014-04-15.基于1.05正式版.blogs会及时跟进最新版本号的内核开发进度,若源代码凝视出现"???"字样,则是未深究理解部分. Raw-OS官方 ...

  2. CommonJS 的 AMD 规范

    异步模块定义(Asynchronous Module Definition,简称 AMD)API 描述了一种定义模块的机制,模块及其依赖模块可以通过这种机制进行加载.该机制特别适用于浏览器. 本规范曾 ...

  3. 初次体验架设PHP网站

     最近需要快速架设一个网站,因此淘了一份成型的模板,然后就开始..过程比较曲折. 测试环境:Win7旗舰+IIS7.5+mysql5.6+PHP5.2.17+PHPManagerForIIS-1.1. ...

  4. 使用CSS3制作漂亮的按钮

    我给大家介绍一下如何使用CSS3来制作一个圆角阴影.渐变色的漂亮的按钮,它不需要任何图片和javascript脚本,只需要CSS3就可以轻松实现按钮效果,并且可以适用于任意HTML元素,想div,sp ...

  5. 推荐几个对Asp&period;Net开发者比较实用的工具

    推荐几个对Asp.Net开发者比较实用的工具.大家有相关工具也可以在评论区留言,一起努力学习. 工具 1.Visual stdio Productivity Power tool:visual std ...

  6. FOJ 1607 Greedy division 数学题

    题目地址: http://acm.fzu.edu.cn/problem.php?pid=1607 给定一个n,将n平均分成m份,问有几种方法,每种方法中找出最大的数.思路:就是求n的因子数.先将每个数 ...

  7. hdu 2243 考研绝望——复杂的文字&lpar;AC自己主动机&plus;矩阵高速功率&rpar;

    pid=2243" target="_blank" style="">题目链接:hdu 2243 考研路茫茫--单词情结 题目大意:略. 解题思 ...

  8. &lbrack;Java&rsqb; Java读取Word文档

    前言 最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法. Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括 ...

  9. 『练手』通过注册表 获取 VS 和 SQLServer 文件路径

    获取任意 VS 和 SQLServer 的 磁盘安装目录. 背景需求:如果磁盘电脑安装了 VS 或者 SQLServer 则 认定这台计算机 的使用者 是一名 软件研发人员,则让程序 以最高权限运行. ...

  10. &lbrack;NOI2012&rsqb;

    来自FallDream的博客,未经允许,请勿转载,谢谢. 一天一套noi 简直了.... 昨天勉强做完了noi2011 今天教练又丢出来一套noi2012  去掉提答还有5题 勉强做了3题  先占个坑 ...