Указан @Qualifier для поля в коде на bean с не-null значением, но в ходе работы программы в контейнере объектов поле имеет значение null
Конфигурация:
<bean class = "java.lang.String">
<qualifier value = "db_name"/>
<constructor-arg value = "db_name_using_bean_with_qualifier"/>
</bean>
<bean id = "any_project" class="ru.miron.Annotations.Database"/>
Класс Database:
public class Database {
@Autowired(required = true) // true on_default
@Qualifier("db_name") // name of bean to search
private String name;
...
public void print() {
System.out.println("db name: " + name);
}
}
Исполняемый код:
Database dbFromConfigUsingQualifiers = context.getBean("any_project", Database.class);
dbFromConfigUsingQualifiers.print();
Ожидаемый вывод:
db name: db_name_using_bean_with_qualifier
На деле:
db name: null
Ошибки не было. Это означает, что оно нашло по qualifier'у bean. Но как так получилось, что оно нашло bean, имеющий значение, и подставило null на его место - ума не приложу
Ответы (1 шт):
Автор решения: Miron
→ Ссылка
Забыл "подключить" аннотации. Делается это с помощью добавления следующих строк в <bean сюда>:
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"
И в само тело bean:
<context:annotation-config/>