Java 从根上下文访问bean时Spring NoSuchBeanDefinitionException
我有一个根上下文文件(applicationContext.xml)和一个子上下文文件(subContext.xml) 当我尝试从subContext.xml中的applicationContext.xml访问bean时,会出现NoSuchBeanDefinitionException subContext.xml bean:Java 从根上下文访问bean时Spring NoSuchBeanDefinitionException,java,spring,dependency-injection,javabeans,Java,Spring,Dependency Injection,Javabeans,我有一个根上下文文件(applicationContext.xml)和一个子上下文文件(subContext.xml) 当我尝试从subContext.xml中的applicationContext.xml访问bean时,会出现NoSuchBeanDefinitionException subContext.xml bean: <bean id="myInfo" factory-bean="myInfoFactory" factory-method="getInstance" sc
<bean id="myInfo" factory-bean="myInfoFactory"
factory-method="getInstance" scope="request">
<aop:scoped-proxy proxy-target-class="true" />
<bean id="myInfoFactory"
class="org.wcw.factory.MyInfoFactory" />
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
问题不在于配置本身,而在于您试图在何处恢复该特定bean 如果尝试从父应用程序上下文中定义的bean(侦听器(ApplicationContext.xml)中注入子ApplicationContext(subContext.xml)中定义的请求作用域bean,您将无法“看到”该特定bean 这种关系在另一个方向起作用。子容器实际上可以看到父容器中定义的每个容器
一种解决方案是将请求代理移动到父级,因为它们是代理,您可以这样做。但是,如果您尝试使用该特定bean时没有可用的请求,则会引发运行时。请说明如何初始化上下文以及子上下文的含义。是不是
import
ed?@SotiriosDelimanolis我已经更新了帖子。谢谢。你能展示一下MyInformFactory
类吗?至少有一副骷髅。这不应该发生。我已经为MyInfoFactory添加了框架。我没看到那门课上发生什么不光彩的事。只是一些普通属性和属性!
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/subContext.xml</value>
</init-param>
public class MyInfoFactory {
private Logger log;
@Autowired
private PortletRequest request;
...
public MyInfo getInstance(PortletRequest request) {
}
...
}