根 Web 应用程序上下文 XML 文件与 portlet 应用程序相关联。portlet 的 web 应用程序上下文 XML 文件包含特定于 portlet 的 beans,而 root web application context XML 文件包含 portlet 应用程序中的所有 portlet 都可以访问的 beans。根 Web 应用程序上下文 XML 中定义的 bean 可以通过定义具有相同 bean ID 的 bean 被特定于 portlet 的应用程序上下文 XML 文件覆盖。
它是用 Portles In Action 编写的。
它表示我们可以使用在 portlet 应用程序的根 Web 应用程序上下文 XML 文件中定义的 bean。
有什么例子吗?
我使用 Sping 框架在 Portlet A 中定义了一个测试 bean。
代码:web.xml
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
应用上下文:
<bean id="testA" class="org.format.liferay.study.TestA" />
我在 Portlet A 中得到 testA:
TestA test = (TestA)PortletApplicationContextUtils.getWebApplicationContext(getPortletContext()).getBean("testA");
这是成功。
当我创建 Portlet B
web.xml
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
applicationContext.xml 为空。
所以我无法在 Portlet B 中获得 testA。
我想知道如何在 liferay 中配置根应用程序上下文