java - 处理一个 Spring bean/接口(interface)的多个实现

标签 java spring interface

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

  1. 在 Spring 中这怎么可能(注入(inject)一个或另一个实现)?

  2. 以下注入(inject)将使用哪种实现方式?

    @Autowired
    private AccountService accountService;
    

最佳答案

广告。 1:可以使用@Qualifier annotation或使用 @Resource Autowiring ,而不是 @Autowired 默认为字段名称而不是类型。

广告。 2:它会在运行时失败,说两个 bean 正在实现这个接口(interface)。如果您的 bean 之一另外是 annotated with @Primary ,在按类型 Autowiring 时将是首选。

关于java - 处理一个 Spring bean/接口(interface)的多个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777079/

相关文章:

java - 如何使两个具有相同名称、签名和返回类型的方法的类表现得像它们实现相同的接口(interface)一样

python - 如何在程序中添加转换屏幕?

java - Mac OS Java 7 JDialog.dispose 内存泄漏

java - 在 JLabel 中使用空格与在 GridBagLayout 中使用 ipadx/ipady

java - 查询没有返回唯一结果: 3; nested exception is javax. persistence.NonUniqueResultException:(Spring JPA项目)

java - Hibernate PersistenceContext session 刷新

c# - 我如何判断我的泛型类型是否支持某个接口(interface)并为函数来回转换到该接口(interface)?

java - 抽象类的代理,不改变用法

Java:将日期 2011-Jan-01 转换为 dd-MM-yyyy 格式

Eclipse 和 Web 项目导入,在服务器上运行缺失!