问题陈述:两个同名的bean之间存在冲突
示例场景
界面
public interface FakeInterface{
}
充当bean的实现
@Slf4j
@Service
public class IfakeInterfaceOne1 implements FakeInterface{
}
@Slf4j
@Service
public class IfakeInterfaceTwo2 implements FakeInterface{
}
主要问题来自于我自动接线的地方
项目中的某个地方
@Autowire
FakeInterface myInterface;
注意 我不想接触 IfakeInterfaceOne1 类,因为它被许多其他类使用
我们可以做的任何实验都是使用 IfakeInterfaceTwo2
请帮助我。
谢谢,提前。
如果您自动装配接口,它将无法决定应使用 2 个实现中的哪一个,因此会返回异常。
您可以使用限定符来消除两个实现之间的歧义。例如:
@Slf4j
@Service
@Qualifier("one")
public class IfakeInterfaceOne1 implements FakeInterface{
}
@Slf4j
@Service
@Qualifier("two")
public class IfakeInterfaceTwo2 implements FakeInterface{
}
然后当你自动装配它时:
@Autowired
@Qualifier("one")
FakeInterface myInterface;
在此示例中,将使用
FakeInterface
的第一个实现