мне нужно явно использовать «autowire» в XML-файле для автопроводки в веб-приложении Spring - PullRequest
0 голосов
/ 29 марта 2011

Я так старался, а потом узнал, что я не использовал autowire = "byName" в бобе, и поэтому он не был автоматическим.

1) Я хочу спросить, что это тот же случай с использованием @Resource. я имею в виду, мне нужно написать autowire в бобе для этого

2) Но в некоторых файлах @Resource работает без записи autowire в бинах

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Когда вы автоматически проводите по имени (по умолчанию это тип в аннотации @Autowired), тогда между ним и @Resource нет никакой разницы.Вы можете выбрать определение этих bean-компонентов в xml или просто добавить

<context:component-scan base-package="service"/>

в ваш application-context.xml, где service (например) - это ваш пакет, который сообщает Spring, где сканировать аннотации.в вашем проекте.Затем он автоматически найдет эти аннотированные классы (в этом пакете).

0 голосов
/ 29 марта 2011

Я хочу спросить, что это тот же случай с использованием @Resource.я имею в виду, мне нужно написать autowire в бобе для этого

Эффект, по сути, тот же.@Resource обеспечивает развязку от пружины, так как он входит в комплект javax.@Resource также эквивалентно использованию @Autowired в сочетании с @Qualifier

Но в некоторых файлах @Resource работает без записи autowire в bean-компонентах

ДаВот как это работает."autowire"-by-name при применении аналогично @Resource("someBean") независимо от значения autowire = "byName".

0 голосов
/ 29 марта 2011

В аннотации @Resource не используется автоматическое подключение, так как вы указываете имя ресурса, к которому хотите подключиться. Поэтому вам не нужно указывать какое-либо конкретное значение автоматического подключения к компоненту.

Даже если вы используете аннотацию @Autowire, вам не нужно устанавливать атрибут autowire. Вы используете атрибут или аннотации, но вам не нужны оба.

...