首页 > 技术文章 > spring注入map,spring注入一个接口的多个实现类在map里

liran123 2020-06-03 18:18 原文

spring注入map,spring注入多个实现类在map里

一个接口,两个实现类

接口:

 

public interface TestService {
    void test();
}

 

两个实现类

@Component("testOService")
public class TestOService implements TestService {
    @Override
    public void test() {
        System.out.println("testOService");
    }
}

 

@Component("testTwoService")
public class TestTwoService implements TestService {
    @Override
    public void test() {
        System.out.println("testTwoService");
    }
}

 

查看:

@Service
public class UserInfoService {
    
    @Autowired
    private Map<String ,TestService> testServiceMap;
    @PostConstruct
    public void init(){
        testServiceMap.get("testOService").test();
        testServiceMap.get("testTwoService").test();
    }
}

 

 

源码解析

对应spring源码位置 org.springframework.beans.factory.support.DefaultListableBeanFactory

方法 : org.springframework.beans.factory.support.DefaultListableBeanFactory#resolveMultipleBeans

 

推荐阅读