spring注入map,spring注入一个接口的多个实现类在map里

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注入map,spring注入一个接口的多个实现类在map里

源码解析

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

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

spring注入map,spring注入一个接口的多个实现类在map里