当一个接口有多个实现类时,怎么确定自动注入的是哪个类
时间: 2024-10-28 15:10:50 浏览: 8
spring注解识别一个接口的多个实现类方法
5星 · 资源好评率100%
当一个接口有多個實現類時,自動注入通常是在依赖注入框架(如Spring框架)中進行的。這種情況下,決定使用哪個實現類通常是根據配置或者注解來指定的。例如,在Spring中,你可以為每個實現類定義一個bean,然后通过`@Qualifier`注解或者其他配置元数据来标记每个bean,这样在自动装配时可以根据需要指定特定的实现。
在Spring中,可以这样做:
1. **XML配置**:
```xml
<bean id="impl1" class="com.example.InterfaceImpl1" />
<bean id="impl2" class="com.example.InterfaceImpl2" />
```
然后在@Autowired注解中指定对应的id:
```java
@Autowired
@Qualifier("impl1")
private Interface interfaceInstance;
```
2. **Java配置**:
```java
@Bean
public Interface impl1() {
return new InterfaceImpl1();
}
@Bean
@Qualifier("impl2")
public Interface impl2() {
return new InterfaceImpl2();
}
```
使用的时候同样指定 Qualifier 注解。
阅读全文