Spring Data JPA 工作原理分析

  1. 开发人员未定义 EntityManagerFactory,但可以正确注入 EntityManagerFactory对象,为什么 ?
  2. 开发人员未定义 EntityManager ,但可以注入 EntityManager对象,为什么 ?
    • TBD
  3. 开发人员继承JpaRepository接口定义自己的repository bean接口,并未提供实现类,但可以注入相应的bean实例,这些bean是怎么来的 ?
    • 要点
      • 被隐式使用的注解@EnableJpaRepositories声明缺省使用JpaRepositoryFactoryBean工厂bean进行repository bean的创建;
      • RepositoryConfigurationExtension会被使用,用于扫描发现所有开发人员定义的repository bean接口;
      • RepositoryConfigurationDelegate使用RepositoryConfigurationExtension扫描发现所用开发人员定义的repository bean接口,然后将它们作为bean逐一注册到容器。
      • JpaRepositoryFactoryBean内置指定开发人员定义的repository bean接口创建bean使用实现类SimpleJpaRepository;

你可能感兴趣的:(Spring,JPA)