我使用@Resource来注释bean类,@Autowired来自动装配依赖项,在Spring配置文件中添加以下内容:
context:component-scan base-package="package1,package2" tx:annotation-driven所以,它可以正常工作(已测试)。Spring扫描带有@Resource注释的package1、package2类,然后我可以使用getBean()从控制台应用程序中获取它们(例如,使用main()函数)。但是当我尝试使用下一个方法(在Tomcat中使用Spring容器管理环境)时:
<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>编译一个包含所有bean类的jar,并将此jar放入WEB-INF/lib中。那么我看到了什么?我无法getBean()任何那些@Resource注释的bean!Spring无法找到它们。但是我仍然可以getBean()明确存在于beans.xml中的bean。问题出在哪里呢?