Предположим, у нас есть Animal
-Бобов, и мы хотим определить различных конкретных животных, таких как:
public interface Animal
...
public class Cat implements Animal
...
public class Dog implements Animal
И мы хотим ввести конкретных животных где-то вроде
@Autowired
@Qualifier("cat")
private Animal cat
Тогдамы можем определить Animal-Beans, используя идентификаторы и @Qualifiers.Все идет нормально.
Но что, если бы мы идентифицировали один и тот же класс Cat с разными идентификаторами, такими как "cat" и "timmy" (имя кота)?Другими словами, мы хотим сюръективный вместо биективного отображения .
Spring позволяет конфигурацию, подобную этой:
<bean id="cat" class="Cat"/>
<bean id="timmy" class="Cat"/>
Spring позволяет это и дает нам кота-Класс для обоих идентификаторов (хотя не один и тот же экземпляр).Это задумано специально или я неправильно использую Spring, чтобы однажды какая-нибудь будущая версия Spring больше не поддерживала это поведение (два идентификатора для одного компонента)?