我有一個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