Mar*_*ijk 9 spring jpa spring-data spring-data-jpa
出于性能原因,我正在从组件扫描切换到明确声明我的bean.所以基本上我想删除@EnableJpaRepositories它扫描存储库.
我的存储库是扩展的标准接口JpaRepository.我如何申报我的存储库?
Oli*_*ohm 11
您可以通过JpaRepositoryFactoryBean手动声明来创建单个存储库实例:
@Configuration
class Config {
  @Bean
  public JpaRepositoryFactoryBean userRepository() {
    JpaRepositoryFactoryBean factory = new JpaRepositoryFactoryBean();
    factory.setRepositoryInterface(UserRepository.class);
    return factory;
  }
}
这将导致Spring调用getObject()以从工厂获取存储库代理并可能将其注入客户端.
但是,我认为 - 如果没有配置明显错误 - 扫描存储库的开销是可以忽略的,尤其是.与初始化一次EntityManagerFactory拍摄的时间相比.
小智 5
我同意@Oliver。然而,随着时间的推移,Spring Data JPA 的 API 显然已经发生了变化,在当前版本 (2.2.3) 中,代码片段应该更像下面:
@Configuration
class Config {
  @Bean
  // assuming userId is String
  public JpaRepositoryFactoryBean<UserRepository, User, String> userRepository() {
    JpaRepositoryFactoryBean factory = new JpaRepositoryFactoryBean(UserRepository.class);
    return factory;
  }
}
| 归档时间: | 
 | 
| 查看次数: | 2470 次 | 
| 最近记录: |