starter引入
要想看jpa是如何将hibernate引入容器,首先要看的是 spring-boot-starter-data-jpa 如何引入依赖:
如果注意的话,starter的包内容其实没有什么实质的内容,关键是pom里的依赖
pom中规定了各依赖和依赖的版本,能有效地解决兼容性问题。
入口
代码跟踪看,初始化是通过springboot初始化的refresh方法引入
LocalContainerEntityManagerFactoryBean AbstractEntityManagerFactoryBean buildNativeEntityManagerFactory
也就是在这里,从springjpa过渡到hibernate进行entityManagerFactory的创建。org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl#build
完成sessionFactory的创建。