在一个 Spring 引导应用程序中同时使用 CassandraRepository 和 ReactiveCassandraRepository

Using both CassandraRepository and ReactiveCassandraRepository in one Spring Boot application

我正在开发 Spring Boot WebFlux 应用程序。我使用的数据库是 Cassandra,ReactiveCassandraRepository 主要用于处理数据库操作。

我需要将 Spring 批处理添加到我的项目中以处理一些长时间的 运行 作业。但是 Spring Batch 不支持反应模型。由于这个原因,我决定使用 CassandraRepositoryReactiveCassandraRepository 为每个条目创建两个存储库。 Spring 批处理将使用通过扩展 CassandraRepository 创建的标准存储库,而 Spring 引导应用程序的其他部分将使用非阻塞 ReactiveCassandraRepository.

如果我采用这种方法会有问题吗?我打算更新代码并扩展 AbstractCassandraConfiguration 而不是 AbstractReactiveCassandraConfiguration 来定义 Cassandra 配置,但我不确定是否应该同时使用 @EnableCassandraRepositories@EnableReactiveCassandraRepositories 注释.

如果我能得到一些反馈,我将不胜感激。具体来说;

  1. 这个评价正确吗?
  2. 如何在 Spring 引导 WebFlux 应用程序中使用 Spring 批处理而不需要多个版本的存储库?

这是配置问题。您应该能够配置两种类型的存储库,并在应用程序的每个部分使用您需要的一种。

也就是说,我不会在同一个 application/JVM 中混合使用 Web 应用程序和批处理应用程序。遵循让一件事做一件事并做好的 unix 理念,我会在它们自己的 JVM 中分离批处理应用程序。这是更清洁的 IMO,可以通过设计解决问题。