Autowired .. больше, чем один? - PullRequest
3 голосов
/ 23 мая 2011

Я использую

<context:component-scan base-package="com.package.dao"/> (Spring 3)

и в моих контроллерах с @ Autowired автоматически получит нужный мне DAO.Это прекрасно и работает.Проблема в том, что мне нужно более одного менеджера DAO.Как я могу сделать?Я пробовал с @ Qualifier , но я не уверен насчет имени дао-менеджера.className не работает

кто-то может мне помочь?

Спасибо!

1 Ответ

4 голосов
/ 23 мая 2011

См. В документации пружина :

@ Autowired - это, в основном, инжекция по типу с дополнительными семантическими квалификаторами. Это означает, что значения квалификатора, даже при использовании резервного имени бина, всегда имеют сужающую семантику в наборе совпадений типов; они семантически не выражают ссылку на уникальный идентификатор компонента

...

Если вы намереваетесь выразить внедрение, основанное на аннотациях, по имени, не используйте в первую очередь @Autowired - даже если он технически способен ссылаться на имя компонента через значения @Qualifier. Вместо этого предпочитайте аннотацию JSR-250 @Resource, которая семантически определена, чтобы идентифицировать конкретный целевой компонент по его уникальному имени, причем объявленный тип не имеет значения для процесса сопоставления.

Вместо этого используйте @Resource, см. здесь .

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