Spring Boot 2.1重复reactiveMongoTemplate bean

2024-05-03

我有以下 Spring Boot@Configuration class:

@Configuration
@EnableReactiveMongoRepositories
class MongoConfiguration : AbstractReactiveMongoConfiguration()
{
    override fun reactiveMongoClient() = MongoClients.create()

    override fun getDatabaseName() = "mydb"

    override fun customConversions(): MongoCustomConversions =
            MongoCustomConversions(listOf(ZonedDateTimeReadConverter(), ZonedDateTimeWriteConverter()))
}

应用程序无法启动,并记录以下消息:

无法注册类路径资源 [org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.class] 中定义的 bean“reactiveMongoTemplate”。具有该名称的 bean 已在类路径资源 [com/mypackage/MongoConfiguration.class] 中定义,并且覆盖被禁用。

这让我很困惑,因为reactiveMongoTemplate本方法在MongoReactiveDataAutoConfiguration配置有@ConditionalOnMissingBean.


问题在于AbstractReactiveMongoConfiguration您已对其进行了子分类。其签名reactiveMongoTemplate @Bean方法声明它返回ReactiveMongoOperations。在创建 bean 之前,这就是所有可用的类型信息,并且 bean 工厂无法知道该 bean 实际上是一个ReactiveMongoTemplate实例。结果,@ConditionaOnMissingBean那正在寻找一个ReactiveMongoTemplatebean 找不到一个,因此尝试定义这两个 bean。这应该在 Spring Data MongoDB 中修复,以便AbstractReactiveMongoConfiguration为其 bean 提供尽可能多的类型信息。我已经打开了DATAMONGO-2355 https://jira.spring.io/browse/DATAMONGO-2355.

您可以通过更多地利用 Spring Boot 的自动配置来避免该问题。而不是子类化AbstractReactiveMongoConfiguration你可以:

  1. 使用配置属性spring.data.mongodb.database=mydb设置数据库。
  2. 使用自动配置的MongoClientbean 而不是定义您自己的。
  3. 定义你自己的MongoCustomConversions然后将使用该 bean 来支持引导自动配置的 bean。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 2.1重复reactiveMongoTemplate bean 的相关文章

随机推荐

  • 使用外源数据进行 SARIMAX 样本外预测

    我正在使用 SARIMAX 进行时间序列分析 并且一直在努力解决这个问题 我想我已经成功地拟合了一个模型并用它来进行预测 但是 我不知道如何利用外源数据进行样本预测 我可能做错了整个事情 所以我在下面包含了我的步骤和一些示例数据 impor
  • 如何使用 JDBC 将大型(或至少是重要的)BLOB 放入 Oracle 中?

    我正在开发一个应用程序来执行一些批处理 并且希望将输入和输出数据作为文件存储在 Oracle 数据库的 BLOB 字段中 Oracle版本是10g r2 使用如下的PreparedStatement setBinaryStream 方法会将
  • 应用程序包包含本机代码,我找不到调试符号 .zip

    这是关于 PlayStore 警告调试符号 添加行到 build gradle app 后我已成功构建 Gradle android buildTypes release ndk debugSymbolLevel FULL 但遵循指示htt
  • 使用 Mongoose 多次查询,无需嵌套

    我正在尝试使用 node js 生成一个文档 该文档需要从 mongo 数据库运行多个不相关的数据库查询 这是我当前的代码 Data find function err results if err return next err fini
  • Pandas:了解操作何时影响原始数据帧

    我喜欢 pandas 并且已经使用它很多年了 并且非常有信心我能够很好地掌握如何对数据帧进行子集化并适当地处理视图与副本 尽管我使用了很多断言来确保 我还知道有很多关于SettingWithCopyWarning的问题 例如如何处理Pand
  • Spring中的ApplicationContext导入

    我正在从本教程学习 Spring http courses caveofprogramming com courses the java spring tutorial lectures 38024 http courses caveofp
  • tkinter 应用程序中的 super()

    我无法理解这个错误 在下面的代码中 当我使用tk Frame一切都按预期进行 但是如果我使用super 我被抛出了AttributeError 应用程序对象没有属性 tk class Application tk Frame def ini
  • WPF 与分辨率无关

    如果我将所有内容放入 viewbox 容器中 那么我的 wpf 应用程序将与分辨率无关 或者我需要执行其他操作吗 请帮助概念 根据可用屏幕或中等尺寸缩放 元素如果您希望始终填充屏幕或输出设备的某些空间 而与指标无关 那么使用视图框是一个不错
  • 如何忽略“类型实例化过深且可能无限。ts(2589)”打字稿错误?

    更新到 Typescript 3 5 后 我收到很多 类型实例化过深 可能是无限的 ts 2589 错误 我怎么能忽视他们呢 代码发生的地方 使用TypeORM https typeorm io import Connection Repo
  • 静态类属性上的 isset

    class A public static foo 42 class A attribute foo var dump isset class attribute gives bool false 我如何检查这个类中是否存在这个静态属性 U
  • html() 与 innerHTML jquery/javascript 和 XSS 攻击

    我正在对我自己的代码测试 xss 攻击 下面的示例是一个简单的框 用户可以在其中输入他想要的任何内容 按 测试 后按钮 JS 会将输入字符串显示为两个 div 这是我为了更好地解释我的问题而制作的示例
  • 使用 SimpleHTTPServer 进行单元测试

    我正在编写一个 Python 模块 它封装了某个 Web 服务 API 这一切都是 REST 因此实施起来相对简单 然而 在单元测试方面我发现了一个问题 由于我不运行我为其创建此模块的服务 我不想对它们进行锤击 但同时 我需要检索数据来运行
  • MKMapView 未在平移上调用 RegionDidChangeAnimated

    我有一个带有 MKMapView 的应用程序和每次地图更改位置 在 RegionDidChangeAnimated 中 时调用的代码 当应用程序最初加载时 在显式更新地图坐标的平移 滑动 捏合 点击和按钮上调用regionDidChange
  • 如何从 MP3 文件中提取元数据?

    我已经得到了 MP3 文件的文件名 如何从该 MP3 文件中提取元数据 例如艺术家 专辑 专辑图像等 对于 API 级别 10 或更高级别尝试此操作 MediaMetadataRetriever mmr new MediaMetadataR
  • smtplib.SMTPAuthenticationError: (534, b'5.7.9 需要应用程序特定的密码

    smtplib SMTPAuthenticationError 534 b 5 7 9 需要应用程序特定的密码 了解更多信息 n5 7 9https support google com mail p InvalidSecondFactor
  • Spring Boot处理实体继承

    我正在处理这个tutorial http blog netgloo com 2014 12 18 handling entities inheritance with spring data jpa 处理实体继承 我有扩展用户实体的个人和公
  • 如何获取 datetimepicker c# winform 选中/未选中事件

    winforms net的datetimepicker控件中有一个复选框 但我找不到选中或取消选中复选框时触发的事件 有出路吗 但是它确实会触发值更改事件
  • 如何为每个分组元素选择随机的非连续日期?

    我目前正在尝试为每个分组列选择非连续日期 换句话说 我有以下数据框 我基本上想group by Site 然后为每个分组站点仅保留 3 个随机非连续日期 例如 如果 HP37P1B 的日期对应于 3 月 12 日 3 月 13 日 3 月
  • 如何强制调用 C# 派生方法

    我有一个由某些工具生成的类 因此我无法更改它 生成的类非常简单 没有接口 没有虚方法 class GeneratedFoo public void Write string p do something 在 C 项目中 我们希望提供一种方法
  • Spring Boot 2.1重复reactiveMongoTemplate bean

    我有以下 Spring Boot Configuration class Configuration EnableReactiveMongoRepositories class MongoConfiguration AbstractReac