Указан @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/>
→ Ссылка