spring - 春天MVC。Servlet 应用程序上下文在根应用程序上下文中看不到 AutowiredAnnotationBeanPostProcessor bean
问题描述
我的 SpringMVC 应用程序中有两个应用程序上下文:appContext.xml(根应用程序上下文)和 servletContext.xml(Servlet 应用程序上下文)。
appContext.xml 中的 Bean:
<bean class="java.util.Random"/>
<bean class="egor.spring.daos.impl.GamesDAOImpl"/>
<bean class="egor.spring.services.impl.BaseServiceImpl"/>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
servletContext.xml 中的 Bean:
<mvc:annotation-driven/>
<bean class="egor.spring.controllers.BaseController"/>
当我使用这两个上下文运行我的 Tomcat 服务器时,它会失败并出现 500 错误。
但是,如果我<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
从 appContext.xml 移动到 servletContext.xml - 服务器工作正常。
为什么 ServletApplicationContext 看不到 RootApplicationContext 中定义的 BeanPostProcessor ?
PS My BaseController 包含带有 @Autowired 注释的字段。
解决方案
使用@Resource
而不是@Autowired
推荐阅读
- redis - Is Redis security weak but does not matter?
- javascript - 如何进行 nativescript paytm 集成
- c# - C# 位图中的缩放性能
- c - C 语言中的多个数据库配置
- c++ - Compilation error with readfile function in C++
- c# - 从类中获取字符串到 web api
- r - adding two column of a data where col1 contains date and col2 contains days
- java - java - 如何在Java中使用枚举作为JSON对象中的键?
- node.js - socket.emit 在 socket.on 下不起作用
- php - 我们可以在 Laravel 控制器中有两个或更多类吗