我有一个Portlet应用程序。它使用Spring框架IoC容器进行配置。我正在使用org.springframework.web.context.ContextLoaderListener加载我的上下文。以编程方式在Portlet特定上下文中访问Bean
我有一个在根级别(applicationContext.xml)和一个portlet特定上下文(MyPortlet-portlet.xml)的应用程序上下文。
我有一个org.springframework.web.portlet.DispatcherPortlet类型的portlet连接到Controller。在控制器中,我想访问其中一个bean(例如,带有id“myBean”的bean),我已经在我的portlet特定上下文中定义了它。我已经尝试过
MyBean mybean = (MyBean)PortletApplicationContextUtils.getWebApplicationContext(
getPortletContext()).getBean("myBean")
但是,只有我的应用程序上下文中的bean在这里可用 - 我的portlet特定上下文中没有任何bean可用。
有没有办法在我的portlet特定的上下文中访问bean?
感谢
嗨,我没有以正常的方式连接我的bean的原因是因为控制器有一个单身的服务,它需要一个不是单身的处理器。所以我每次都将控制器中的处理器传递给服务。有没有更好的方法在XML上下文文件中配置它? – aos 2010-03-23 16:02:18
@Aos:是的,我在答案中描述了更好的方法 - 使用'ApplicationContextAware'等 – skaffman 2010-03-23 16:10:19
好的 - 谢谢你的帮助。我现在有我的控制器工作。 – aos 2010-03-23 16:40:47