当前位置: 首页 > 知识库问答 >
问题:

处理一个Spring bean/接口的多个实现

葛兴发
2023-03-14

假设我需要依赖一个Spring bean的几个实现。我有一个AccountService接口和两个实现:DefaultAccountServiceImplSpecializedAccountServiceImpl

下面的注入将使用哪个实现?

@Autowired
private AccountService accountService;

共有1个答案

丁韬
2023-03-14

ad.1:您可以使用@qualifier注释或使用@resource使用autowire,而不是使用@autowired,后者默认为字段名而不是类型。

ad.2:如果说有两个bean正在实现这个接口,它将在运行时失败。如果您的bean中有一个附加了@primary注释,那么在按类型自动跟踪时,它将是首选。

 类似资料:
  • 在我的应用程序中有一个对象树。要构成该树,每个对象都有一个父引用。由于某些对象类型可以是多个父对象类型的子对象,所有潜在的父对象类型都通过实现公共接口来统一。我尽可能地缩小了问题的范围(JAXB抱怨父成员变量(注释为@XmlIDREF和@xmldattribute)是一个接口): 这是我在尝试运行它时得到的例外: com.sun.xml.internal.bind.v2.runtime.非法注释异

  • 问题内容: 尝试部署应用程序时,似乎出现以下异常: 我的代码运行良好,直到将返回类型从List更改为List > 这是部分Web服务: 我也尝试过通过删除@SOAPBinding并尝试使用默认值,但是会出现相同的结果。 感谢任何帮助 更新 我要注意一些事情。我将所有List更改为ArrayList,然后进行编译。我之所以说编译但不起作用是因为它的行为很奇怪。我得到一个类型为Object的对象:Re

  • 问题内容: 一个类文件可以实现几个接口?类文件使用的接口数量是否有限制?提前致谢。 问题答案: 出于所有实际目的,一个类可以实现的接口数量没有限制,但是java不允许您从多个超类继承。 但是,如果您确实想要nitpick,则可以说一个类可以实现的接口数量受接口ID可以以java字节码表示的最大值限制,或者必须由实现这些接口的代码存储量来限制,或者存储字节码的硬盘空间量。这些都是愚蠢的论点。显然,由

  • 我目前正在研究一种数据可视化技术,它从电影中获取信息,实时播放并同时创建。为此,我想有两个独立的草图窗口。一个窗口应显示实时播放的电影,另一个窗口应显示正在进行的可视化。 我似乎不知道如何轻松地添加另一个草图窗口,并尝试了一些在处理3中不再工作的示例。 然后我偶然发现了这个例子:https://gist.github.com/atduskgreg/666e46c8408e2a33b09a 尽管我可

  • 问题内容: 我的意思是: 我用谷歌搜索,发现了这个: 表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, 问题答案: 表示实现,当旨在声明仅提供不提供实现时。 A 100%,是功能上等同于,但它也可以实现,如果你想(在这种情况下,它不会保持1

  • 我们使用Spring Batch进行一些处理,通过Reader读取一些ID,我们希望通过处理器将它们处理为“块”,然后写入多个文件。但是处理器接口一次只允许处理一个项目,我们需要进行批量处理,因为处理器依赖于第三方,不能为每个项目调用服务。 我看到我们可以为“块”中涉及的所有读取器-处理器-写入器创建包装器,以处理列表<>并委托给一些具体的读取器/处理器/写入器。但这对我来说并不是件好事。像这样: