在一个 Spring 引导应用程序中同时使用 CassandraRepository 和 ReactiveCassandraRepository
Using both CassandraRepository and ReactiveCassandraRepository in one Spring Boot application
我正在开发 Spring Boot WebFlux 应用程序。我使用的数据库是 Cassandra,ReactiveCassandraRepository
主要用于处理数据库操作。
我需要将 Spring 批处理添加到我的项目中以处理一些长时间的 运行 作业。但是 Spring Batch 不支持反应模型。由于这个原因,我决定使用 CassandraRepository
和 ReactiveCassandraRepository
为每个条目创建两个存储库。 Spring 批处理将使用通过扩展 CassandraRepository
创建的标准存储库,而 Spring 引导应用程序的其他部分将使用非阻塞 ReactiveCassandraRepository
.
如果我采用这种方法会有问题吗?我打算更新代码并扩展 AbstractCassandraConfiguration
而不是 AbstractReactiveCassandraConfiguration
来定义 Cassandra 配置,但我不确定是否应该同时使用 @EnableCassandraRepositories
和 @EnableReactiveCassandraRepositories
注释.
如果我能得到一些反馈,我将不胜感激。具体来说;
- 这个评价正确吗?
- 如何在 Spring 引导 WebFlux 应用程序中使用 Spring 批处理而不需要多个版本的存储库?
这是配置问题。您应该能够配置两种类型的存储库,并在应用程序的每个部分使用您需要的一种。
也就是说,我不会在同一个 application/JVM 中混合使用 Web 应用程序和批处理应用程序。遵循让一件事做一件事并做好的 unix 理念,我会在它们自己的 JVM 中分离批处理应用程序。这是更清洁的 IMO,可以通过设计解决问题。
我正在开发 Spring Boot WebFlux 应用程序。我使用的数据库是 Cassandra,ReactiveCassandraRepository
主要用于处理数据库操作。
我需要将 Spring 批处理添加到我的项目中以处理一些长时间的 运行 作业。但是 Spring Batch 不支持反应模型。由于这个原因,我决定使用 CassandraRepository
和 ReactiveCassandraRepository
为每个条目创建两个存储库。 Spring 批处理将使用通过扩展 CassandraRepository
创建的标准存储库,而 Spring 引导应用程序的其他部分将使用非阻塞 ReactiveCassandraRepository
.
如果我采用这种方法会有问题吗?我打算更新代码并扩展 AbstractCassandraConfiguration
而不是 AbstractReactiveCassandraConfiguration
来定义 Cassandra 配置,但我不确定是否应该同时使用 @EnableCassandraRepositories
和 @EnableReactiveCassandraRepositories
注释.
如果我能得到一些反馈,我将不胜感激。具体来说;
- 这个评价正确吗?
- 如何在 Spring 引导 WebFlux 应用程序中使用 Spring 批处理而不需要多个版本的存储库?
这是配置问题。您应该能够配置两种类型的存储库,并在应用程序的每个部分使用您需要的一种。
也就是说,我不会在同一个 application/JVM 中混合使用 Web 应用程序和批处理应用程序。遵循让一件事做一件事并做好的 unix 理念,我会在它们自己的 JVM 中分离批处理应用程序。这是更清洁的 IMO,可以通过设计解决问题。