目录
前言:
在使用Springboot的过程中,由于Springboot为我们做了大量的初始化配置工作,所以我们在使用的时候只需要进行少许的配置就能达到我们想要的目的, 但是也正因为如此,对于很多不了解其中原委的同学而言一旦配置有问题或者确实配置而报错,从何处开始排查问题便成为了一个困难,甚至当业务需求要求打破springboot的默认配置的时候时候,我们自定义的配置应该如何进行也会难到一部分同学,例如自定义多个数据源。
本文沿着Springboot的配置梳理其对jpa的配置,以便后期关于jpa的地方出问题时知道从何处开始排查问题。
HibernateJpaAutoConfiguration
提示:几乎所有的Springboot应用的初始化都可以从autoconfigure这个包开始查起。
所以我们先来看下auto包下面的东西:
从图中我们找到了HibernateJpaAutoConfiguration. 话不都说,直接上代码:
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass({
LocalContainerEntityManagerFactoryBean.class, EntityManager.class, SessionImplementor.class })
@EnableConfigurationProperties(JpaProperties.class)
@AutoConfigureAfter({
DataSourceAutoConfiguration.class })
@Import(HibernateJpaConfiguration.class)
public class HibernateJpaAutoConfiguration {
}
说明:
1.当SpringJpa以及JPA规范相应的类存在的情况下才进行自动配置。
2.引入JpaProperties (所以需要jpa的自定义配置就可以看这个类)
3.在数据源初始化完成后再进行配置
4.引入Hibernate实现的配置 HibernateJpaConfiguration(hibernate应该