一篇文章梳理spring boot 加载 spring data jpa的全过程.

摘要: 用过spring boot 与spring data jpa 的都知道,只需要简单的配置,就能实现数据库的CRUD, 但使用简单的前提是spring 为我们做了太多工作,而这些工作的一个核心就是自动装配,而自动装配也是约定优于配置方案的最佳实践

用过spring boot 与spring data jpa 的都知道,只需要简单的配置,就能实现数据库的CRUD, 但使用简单的前提是spring 为我们做了太多工作,而这些工作的一个核心就是自动装配,而自动装配也是约定优于配置方案的最佳实践。

利用spring中的SPI(Service Provider Interface)机制, 也就是约定在工程的META-INFO目录下配置相关的文件,比如spring.factories文件,在项目启动的时候,去扫描各个jar包及工程目录下META-INFO文件夹下的spring.factories 文件,根据里面的配置,加载相关的类,这就是spring boot的核心装配思想.

有了上面的思路,再来看spring data jpa是怎么自动装配进来的。我们找到 spring-boot-autoconfigure这个jar包中的 spring.factories ,可以看到很多配置。再其中搜索JPA 可以看到如下内容:

然后可以打开 HibernateJpaAutoConfiguration 这个类查看.

在这个类里面的 JpaProperties 里面也就是我们JPA相应的配置项. 也就是在配置文件中,经常配置的 spring.jpa.xxxx 。另外注意到 import 了 HibernateJpaConfiguration 这个类.

看到上面有 HibernateProperties 这个类,这就是配置文件中 hibernate相关的配置,用spring.jpa.hibernate.xxxx 配置的。同时注意到这个类是继承于 JpaBaseConfiguration,很多核心的功能在这里面,然后剩下的东西就是hibernate本身的了。

从这些过程可以看到整个spring boot在启动 jpa 的一个装配过程,其实整个过程就是约定优于配置的实践,当然还有很多辅助的注解来实现。


补充一点,如果需要配置hibernate相关的属性,有一个类是可以参考的,里面有很多属性与配置文件应该可以对应的,如果哪一天不知道怎么配置了,可以参考这个类:AvailableSettings 




上一篇: springboot jpa mongodb 打印查询语句.
下一篇: 利用easyexcel生成excel文件测试小记之一(easyexcel入门)
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号