java - 如何在 Spring 中使用 @autowired 标签在子对象之间切换?

标签 java spring spring-mvc

有没有办法使用@autowired标签注入(inject)子对象之一?

public class Provider {
 
    @Autowired
    private ParentFeedAPI feedAPI;

}


public abstract class ParentFeedAPI {

}

public class Child1FeedAPI extends ParentFeedAPI{

}

public class Child2FeedAPI extends ParentFeedAPI{

}

Class diagram

最佳答案

您应该遵守@Qualifier注释,并使用例如命名你的bean @Component (或者更合适的 spring 构造型注释),类似于

public class Provider {

    @Qualifier("child1")
    @Autowired
    private ParentFeedAPI feedAPI;

}

public interface ParentFeedAPI {

}

@Component("child1")
public class Child1FeedAPI implements ParentFeedAPI{

}

@Component("child2")
public class Child2FeedAPI implements ParentFeedAPI{

}

此外,尝试针对接口(interface)进行编程

关于java - 如何在 Spring 中使用 @autowired 标签在子对象之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36223288/

相关文章:

Java 或 JavaC 不断提示找不到包或包不存在

java - 在 Java 中同时获取和放置到 Map

java - 我怎样才能在 JDBCTemplate spring 4 中打开数据库连接

java - 如何在Spring MVC中管理对同一文件夹但HTTP参数不同的两个HTTP请求?

java - 在包 ‘<default package>’ 中找到 0 个测试类

java - 递归计算多态 bst 对象的深度

java - Testng && Spring上下文单元测试 -> 在测试方法之前和之后执行sql

java - Spring Security 404 静态资源

java - JPA2.1 - 调用返回 CLOB 的存储过程

spring java配置单元测试