Скажем, у меня есть интерфейсКак выбрать то, что прибудете осуществлению в впрыскивается в к autowired конструктор
interface IPerson {...}
У меня есть две реализации этого интерфейса
@Component
class Programmer implements IPerson {...}
@Component
class LionTamer implements IPerson {...}
у меня есть класс, который использует Autowire инъекции
@Component
class SomethingThatDoesStuff {
@Autowired
public SomethingThatDoesStuff (IPerson someone) {
...
}
}
Как весна знает, какую реализацию нужно вводить? Есть ли способ сказать весне, какую реализацию нужно вводить? Можно ли это сделать с помощью аннотации или мне нужно определить какой-то завод? Если да, то как?
'@ qualifier' будет делать – passion
Если запустить приведенный выше код, в идеале вы получите ошибку Spring инициализации, как это двух реализаций для интерфейса. Как упоминалось выше, вы можете добавить имена квалификаторов для двух реализаций, а внутри @Autowire вы можете указать имя квалификатора. –
Это дубликат – Snickers3192