SpringFramework:预期有一个匹配的 bean,但发现了 2 个

2024-04-20

我正在构建一个使用 SpringFramework 从 MongoDB 读取数据的项目,其结构为存储库 and Service如下:

Repository:
    + Interfaces: 
        - I <T extends Object>
        - I1 extends I<M1>
        - I2 extends I<M2>
    + Implements: 
        - RI Abstract RI<T extends Object>
        - RI1 extends RI<M1> implements I1
        - RI2 extends RI<M2> implements I2

Service:
    + Interfaces: 
        - SI <T extends Object>
        - SI1 extends SI<M1>
        - SI2 extends SI<M1>
    + Implements:
        - Abstract SIIMPL : @Autowired I<?>
        - SI1IMPL : extends SIIMPL<M1> implements SI1
        - SI2IMPL : extends SIIMPL<M2> implements SI2

当我运行时,它抛出异常:

没有可用的类型“I”的合格 bean:预期单个匹配 豆但发现2:I1,I2

当我删除 RI2 时,它可以正常工作。在我看来,我认为根本原因是从抽象(SIIMPL)到另一个抽象(I)的@Autowired 2 个工具是 RI1 和 RI2,所以 spring 不知道选择什么 bean。

如果有人有任何想法,请给我留言。谢谢你!


首先,您应该在 Abstract SIIMPL 类中使用泛型而不是通配符。所以它看起来像:

public abstract class SIIMPL<T> {

   protected I<T> foo; // Don't autowire here

}

然后如上所述,不要将通用 I 对象自动装配到抽象类中,只需在那里定义它,然后通过构造函数注入将其自动装配到具体类中:

public class SI1IMPL extends SIIMPL<M1> implements ST1 {

  public ST1IMPL(@Autowired I<M1> foo) {
      this.foo = foo;
  }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringFramework:预期有一个匹配的 bean,但发现了 2 个 的相关文章

随机推荐

  • Python:在同一窗口中绘制多个图

    我正在尝试运用我从中学到的东西绘制多个图但具有偏移范围python https stackoverflow com questions 16534551 plotting multiple plots but whith offset ra
  • Android 设备上的 JavaPos?

    我正在寻找从 Android 设备打印到 Epson POS 打印机的解决方案 并且需要任何类型的帮助 那么我认为 JavaPOS 在这种情况下是正确的解决方案吗 我找到了这个例子JavaPOS Java 中的 Hello World ht
  • 在 Linux 计算机上安装 Visual Studio [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 请告诉我如何安装Visual Studio任何版本linux Like UBUNTU 11 0 你需要使用Mono http www mono pro
  • 刷新幻灯片

    我使用的是来自http www slidesjs com http www slidesjs com 我想刷新图像列表 因为我需要动态添加和删除图像 有什么办法可以做到这一点吗 我尝试使用删除 fn pluginName 但没有成功 Tha
  • 着色器/矩阵问题 - 看不到对象

    我试图在屏幕上放置一个立方体并点亮它 我想要在立方体上添加 phong 阴影 当我运行代码时 我可以看到背景图像 但看不到立方体 我相当确定立方体本身是正确的 因为我已经设法用纯色着色器显示它 我已经设法编译着色器程序 但我根本看不到立方体
  • 保存哈夫曼代码时出现问题?

    我想将霍夫曼代码保存到文件中 我怎样才能做到这一点 我将霍夫曼代码保存到字符串中 但生成的文件的大小比原始文件大 一种非常简单的方法是一次写一点 如下所示 unsigned char acc Accumulator of bit waiti
  • 添加按键侦听器并使用 Javascript 单击 Greasemonkey 中的链接

    我想创建一个greasemonkey 脚本 它将在一个邮件站点中添加用于注销操作的快捷键 当前注销链接 注销 hl en 其中有一个id r5 我能够获取链接的节点 但无法调用单击它 我尝试了如下脚本 function key event
  • 我如何找到字符串中多个子字符串的位置(Python 3.4.3 shell)

    以下代码显示 word 在字符串中出现一次的位置 我如何更改我的代码 以便如果 单词 在字符串中出现多次 它将打印所有位置 string input Please input a sentence word input Please inp
  • 使用 Firebase SDK v3 中的数据库密钥进行身份验证?

    首先 我喜欢新的 Firebase 但是 我无法让我的 Swift 项目连接到 Firebase 因为我使用数据库机密来验证设备 在 Firebase SDK 版本 3 之前 我可以使用 Firebase 密钥 现在是数据库密钥 进行身份验
  • 汉诺塔递归算法

    我在理解这个河内塔递归算法时遇到问题 public class MainClass public static void main String args int nDisks 3 doTowers nDisks A B C public
  • 辅助功能:仅限 sr 或 aria-label

    From MDN https developer mozilla org en US docs Web Accessibility ARIA ARIA Techniques Using the aria label attribute 在下
  • Laravel phpunit 异常处理

    我正在使用 Laravel 5 5 和 Vue js 编写一个 Web 应用程序 PHPUnit 版本是 6 3 1 当用户使用表单请求注册时 我正在测试验证错误 Route web php Route post register Auth
  • Rails::Railtie:创建 Rails 3 gem 时遇到问题

    我真的可以用另一双眼睛来看待这个问题 所以我想我会把它发布在这里 不久前 我出于自己的教育目的编写了一个基本的 ActiveRecord 扩展 我最近一直在阅读有关 Railties 的内容 并想尝试让它与 Rails 3 一起工作 我想我
  • Swift 与 Objective C 指针操作问题

    我在 Objective C 中有这段代码 运行良好 list controller gt audioBufferList list gt mBuffers 0 mDataByteSize inNumberFrames kSampleWor
  • 导入Stanford nlp Intellij

    我在使用斯坦福词形还原器时遇到问题 当我使用 Intellij IDE 时 我尝试通过依赖项 Windows 导入它 但我无法通过这种方式访问 所有类 有没有办法在 Intellij 上正确导入 stanford english coren
  • 使用随机数生成引擎

    我正在尝试使用兰德 字节 https www openssl org docs crypto rand htmlOpenSSL 的 API 但我想尝试使用各种随机数生成引擎 在 OpenSSL 中是否有推荐的生成随机字节并添加熵的方法 我在
  • 模型无法通过烧瓶迁移检测到

    我的烧瓶应用程序中有这棵树 api migrations model init py Persons py Comments py other classes py resources init py app py util py This
  • 如何更新实体?

    我之前有一个更详细的问题 但我没有答案 我将以更简单的方式提出同样的问题 I have an EF database with foreign key to another table 我想UPDATE an ENTITY 但我需要这样 我
  • 如何定期更新WebView中的HTML5位置(使用FINE_ACCURACY)

    我正在开发一个应用程序来跟踪我的手机定期 不仅是第一次 with navigator geolocation getCurrentPosition 运行在 HTML5 页面中 运行在 webkit webview 中 运行在 android
  • SpringFramework:预期有一个匹配的 bean,但发现了 2 个

    我正在构建一个使用 SpringFramework 从 MongoDB 读取数据的项目 其结构为存储库 and Service如下 Repository Interfaces I