Autowire со значением - PullRequest
       8

Autowire со значением

0 голосов
/ 25 апреля 2018

Есть ли способ автоматического связывания bean-компонента со значением конструктора, указанным в родительском классе.

Пример:

class ParentClass {

    @Autowired
    ChildClass childClass;

}

class ChildClass {

    @Autowired
    childClass(SessionFactory sessionfactory) {..}

}

Я бы хотел, чтобы в моем родительском классе было 2 компонента - один с квалификатором 'A' для sessionfactory, а другой с квалификатором 'B' для sessionfactory.

Есть ли способ достичь этого в Java?

Я бы хотел что-то подобное

class ParentClass {

    @Autowired (something to pass value a)
    ChildClass childClassWithA;


    @Autowired  (something to pass value b)
    ChildClass childClassWithB;
}

Есть ли способ передать значение конструктора от родителя к потомку без создания двух отдельных дочерних классов?

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете использовать аннотацию @Qualifier.

class ParentClass {

    @Qualifier("childClassWithA")
    @Autowired
    ChildClass childClassWithA;

    @Qualifier("childClassWithB")
    @Autowired
    ChildClass childClassWithB;

}

Значение квалификатора можно указать либо в аннотации @Component / @Service, либо используя аннотацию @Bean вместе с @Qualifier.

В качестве запасного Spring использует имя компонента в качестве значения квалификатора по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...