我有一个门户服务器。安装了许多portlet。我有环境配置文件,该文件对于该应用服务器上安装的所有portlet都是相同的。我正在使用apache commons-configuration从配置文件进行管理。
现在,每个portlet /组件都会从这些文件中构建自己的EnvConfiguration bean。显然这会占用更多的记忆。我想分离出EnvConfiguration bean的创建,并在所有portlet中共享它。基本上,我想每个应用服务器只创建一个bean。
最好的方法是什么?这种常见的豆子如何注入所需的成分?
编辑:这是一个liferay应用程序和非EAR模型
谢谢你 孙大信
答案 0 :(得分:0)
您可以使用parentContextKey web.xml参数。 这是一篇博文,解释了如何:http://spring.io/blog/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/
这个想法是打包并声明你想要在一个公共jar中共享的bean(如果你使用Tomcat,你可以将它放在服务器lib文件夹中)。 bean在一个名为beanRefContext.xml的文件中声明(默认名称,可以更改),带有id。然后在webapps的web.xml中添加参数“parentContextKey”,其中包含之前提到的id。