Я использую @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.
Где проблема?