首页 > 解决方案 > 为什么在启动期间创建存储库 bean 需要数据源 bean

问题描述

我正在使用 Spring Boot 开发一个 Spring-data-jpa 项目,我看到创建存储库 bean 需要存在一个数据源 bean,为什么会这样?

并且可以在没有数据源 bean 的情况下创建存储库 bean。

标签: springhibernatespring-data-jpa

解决方案


存储库的目的是将数据加载并保存到持久存储中。Spring Data JPA 使用 JPA 执行此操作,因此它需要一个EntityManager,而后者又需要一个DataSource.

严格来说,DataSource只有在实际访问数据库时才使用。虽然您肯定需要一个bean,但您可以通过提供一个包装器来DataSource延迟法线的构建,该包装器在稍后的时间点实例化实际的。DataSourceDataSource

DelegatingDataSource可能会有所帮助,无论是作为基类,还是因为您要将其更改DataSource为实现的模板。

请参阅有点相关的问题https://stackoverflow.com/a/61208585/66686


推荐阅读