基本上我有一个多模块应用程序:
数据业务网络应用
在 web-app 部分有带有此配置的web.xml 用于加载不同的 applicationContext.xml 配置文件:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:META-INF/spring/applicationContext.xml</param-value>
</context-param>
[...]
<!-- Handles Spring requests -->
<servlet>
<servlet-name>empp-v2-web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/webmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
我的其他两个模块各有一个 META-INF/spring/applicationContext.xml。在 webmvc-config.xml 中,我只对带有 @Controller 注释的类进行组件扫描,同时在 applicationContext 中,我扫描除了控制器之外的基本包中的所有内容。
问题是当我尝试在控制器中自动装配 bean 时,我总是得到 NoSuchBeanDefinitionException。这会在 Eclipse 中配置的服务器上使用“添加和删除”将应用程序作为爆炸项目运行。如果我在同一台服务器上手动构建和部署应用程序,则应用程序可以工作并且 bean 会自动装配。m2eclipse 需要一些特殊的配置吗?对我来说,在这种情况下似乎没有加载 applicationContext.xml。如何验证 m2eclipse 是否在正确的位置处理资源文件?