一个接口,两个实现类
接口:
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


这篇博客探讨了Spring框架下如何处理一个接口的多个实现类。通过示例展示了如何使用`@Component`注解创建两个实现类,并利用`@Autowired`和`@PostConstruct`在`UserInfoService`中初始化并调用这两个实现类的方法。源码解析部分提到了`DefaultListableBeanFactory#resolveMultipleBeans`方法在处理多个bean实例时的作用。
833

被折叠的 条评论
为什么被折叠?



