Не определен боб с именем '...' и аннотация Spring @Resource - PullRequest
2 голосов
/ 14 апреля 2010

Я использую @Resource для аннотирования классов bean-компонентов, @Autowired для автоматической передачи зависимостей, и в конфигурационном файле Spring эти вещи:

    context:component-scan base-package="package1,package2" 
    tx:annotation-driven

Итак, работает нормально (проверено). Spring сканирует package1, package2, классы с аннотацией @Resource и затем я могу получить их, используя getBean (), ЕСЛИ ИСПЫТАНО ОТ ПРИЛОЖЕНИЯ КОНСОЛИ [скажем, с функцией main ()]. ​​

Но когда я пытаюсь использовать следующий подход (использовать Spring в среде, управляемой контейнером = с Tomcat):

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:beans.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

скомпилируйте jar со всеми классами bean и поместите этот jar в WEB-INF / lib

тогда что я вижу? Я не могу получить beBean () ни одного из этих аннотированных bean-компонентов @Resource!
Весна просто не может их найти.
Тем не менее я могу получить beBean () bean-компоненты, которые явно присутствуют в beans.xml.


Где проблема?

Ответы [ 2 ]

2 голосов
/ 18 октября 2012

отсутствует <context:annotation-config/>?

<context:annotation-config/>    
<context:component-scan base-package="package1"/>
<context:component-scan base-package="package2"/>
<tx:annotation-driven transaction-manager="transactionManager" />

or 

<context:annotation-config/>    
<context:component-scan base-package="package1, package2"/>
<tx:annotation-driven transaction-manager="transactionManager" />
0 голосов
/ 14 апреля 2010

Я не уверен, как это работает в автономном режиме, но элемент "" в вашем контексте Spring позволяет использовать аннотации "@Resource". Посмотрите документ Spring для получения дополнительной информации.

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