2013-05-04 1 views
1

со ссылкой на пример ниже, Autowiring Unmanaged Beans Annotated With @Component Он утверждает, что вы должны зарегистрировать компонент в XML-файл, и только тогда вы можете подключить его в классе Java, даже если вы использовали контекст: компонент-сканирование. Но пример Difference between context:annotation-config vs context:component-scan [смотри пример с наивысшими до голосов (174)] состояний, которые можно соединить фасоль без его определение в файле XML ..autowire unmanage бобов с использованием контекста: Компонент-сканирование

так я запуталась что правильное определение ?? Я на самом деле пытался и получил исключение, как описано в первом URL-адресе (Autowiring unmanaged beans). Если мы предположим, что определение бина требуется в файле xml, то каково реальное преимущество или разница между <context:annotation-config> и <context:component-scan>.

я нашел обе ссылки противоречащими друг другу

ответ

2

Вы можете смешивать и сочетать объявляя бобы в XML и аннотирования их с @ Component/@ Service/@ Repository. Вы можете использовать @Autowired как в бобах, объявленных в XML, так и в бобах, аннотированных с помощью @ Component/@ Service/@ Repository. Вы можете использовать @Autowired для добавления bean-компонентов, объявленных в XML, в аннотированные компоненты и для добавления аннотированных компонентов в beans, объявленных в XML.

< context: annotation-config /> просто поддерживает поддержку зависимой инъекции управляемых компонентов, используя @Autowired, а также некоторые другие функции.

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-annotation-config

< контекст: компонент-сканирование ... /> позволяет все, что < контекст: позволяет аннотацию-конфигурации />, плюс, поддержка @ Компонент/@ службы/@ Repository, и многое другое. Как правило, вам просто нужно использовать только контекст <: компонент-сканирование />.

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-classpath-scanning

«неуправляемые» бобы фасоль, которые не являются ни объявляемой в вашем XML, ни примечания и компоненты отсканированная. По-видимому, вы можете попытаться использовать Spring для встраивания зависимостей в неуправляемые компоненты, используя AOP и контекст <: spring-configure />. См. Документацию для получения дополнительной информации:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/aop.html#aop-atconfigurable