Liferay Portal额外研究(二):对Liferay进行瘦身

 

研究Liferay版本:Liferay Professional <st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False">4.0.0
</st1:chsdate>
<st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False"></st1:chsdate>

<st1:chsdate month="12" islunardate="False" day="30" year="1899" w:st="on" isrocdate="False">Liferay额外研究(一):http://blog.csdn.net/james999/archive/2006/07/26/979938.aspx 
</st1:chsdate>

<o:p>Liferay额外研究(二):对Liferay进行瘦身
 </o:p>

       Liferay的体系是很庞杂的,居然有些文章对外宣称Liferay是微内核,我想写这文章的哥们没有搞清楚什么是“微内核”。

<o:p> </o:p>

       Liferay 受其企业版本影响不小,毕竟Liferay公司主要还是“企业行为”,而不是一个单纯的一个“开源团体”行为。所以Liferay Portal本身内嵌了大量的Portlet,而且这些PortletLiferay Portal Framework甚至还有些交融。这就是为什么liferay portal-ejb.jar会有<st1:chmetcnv hasspace="False" numbertype="1" negative="False" sourcevalue="3" unitname="m" w:st="on" tcsc="0">3M</st1:chmetcnv>多。

<o:p> </o:p>

       虽然我们可以通过修改system.propertiesportlet.properties,protal-spring这些基础配置文件来修改声明哪些服务不需要加载,也可以通过修改 WEB-INF目录下的portlet.xmlliferay-portlet.xml以及liferay-display.xml这些文件来删除一些不需要的portlet

<o:p> </o:p>

       但是,我想真正敢真么干的,估计很少。这是为什么呢,就是应为Liferay内部实现的结构和代码,并不是非常良好。而对于这一块的优化,也没有很详细的帮助使用手册。在Liferay的网站上,只有一些教开发人员如何部署在不同服务器和数据库,如何新增一些portlettheme,以及如何修改权限方面的浅显参考手册。

<o:p> </o:p>

       接下来就讲一讲对Liferay的瘦身操作,Liferay变成一个只提供最基本的Portal框架和部署机制的portal context,而去掉那些多余的portlet。—— 因为这些多余的portlet大多国内的项目没有任何利用价值,但是如果需要部署的话,则会大大影响系统响应性能,而且让开发也变得比较麻烦。

<o:p> </o:p>

       当然,是否按照我今天说的方式对Liferay进行瘦身,这全凭习惯。有些朋友不愿改变Liferay的结构,只希望单纯通过配置来加载,也是可以的。

<o:p> </o:p>

1)保留Liferay最基本的一些组件<o:p></o:p>

      

       Liferay提供了一些基本组件,这些组件不属于Portal框架之内,但是整个portal服务是基于这些组件。

包结构

说明

com.liferay.counter

主要提供主建操作服务,Liferay内部的提供的组织结构表维护,就是采用counter提供的主建自增机制

com.liferay.filters

提供一些基础的基于servlet filter的过滤器

com.liferay.taglib

提供最基本的web展示标签

com.liferay.util

提供最基本的一些公共组件

       以上这四个组件是必须保留的,另外还有两个基本组件:com.liferay.mail(提供邮件服务)和com.liferay.wsrp(提供webservice服务)。这个实际上应该属于可选的,如果觉得需要的话,也可以纳入。

<o:p> </o:p>

2)保留LiferayPortal基础服务<o:p></o:p>

       Liferay的基础服务是以com.liferay.portal作为基础的,基本属于此包内的都尽量保留。目前其子package说明如下:

包结构

说明

com.liferay.portal

此包下放置了portal服务相关的一些异常

com.liferay.portal.action

负责一些struts action处理,比如Login

com.liferay.portal.definitions

此包不是类包,而是负责放置一些定义相关的dtd文件资源。具体需要哪些dtd,可以参考com.liferay.portal.util. EntityResolver

com.liferay.portal.dependencies

此包也不是类包,而是负责一些依赖性的资源文件。

com.liferay.portal.deploy

负责自动部署和热部署

com.liferay.portal.events

这个包内主要是一些行为处理类

com.liferay.portal.im

即时消息的支持

com.liferay.portal.jcr

提供JSR-170 JCR的支持,并内部提供Jackrabbit的实现支持

com.liferay.portal.job

对一些时间调度性Job的支持

com.liferay.portal.language

对语言的支持包

com.liferay.portal.lucene

对全文检索的支持

com.liferay.portal.model

一些模型对象的集合

com.liferay.portal.security

<o:p> </o:p>

com.liferay.portal.servlet

<o:p> </o:p>

com.liferay.portal.spring

<o:p> </o:p>

com.liferay.portal.struts

<o:p> </o:p>

com.liferay.portal.theme

提供对“主题”,也就是界面风格的支持

com.liferay.portal.tools

<o:p> </o:p>

com.liferay.portal.util

<o:p> </o:p>

com.liferay.portal.velocity

<o:p> </o:p>

com.liferay.portal.wsrp

<o:p> </o:p>

<o:p> </o:p>

       其实我们可以把Liferay这些portal服务再缩简一些,但刚开始建议大家不要随便的删减,保留原始的即可。

<o:p> </o:p>

3)缩减portlet应用<o:p></o:p>

       Liferay提供了大量的portlet应用,有大概七八十个。正应为这些portlet的加载和部署,让Liferay启动缓慢,消耗系统资源多。实际上,保持Liferay Portal正常运行,只需要其中几个就可以了,剩下的,我们可以根据需要进行删减。

<o:p> </o:p>

       下面列出了一些最基本的portlet,只需要保留如下的这些portlet即可保证liferay的正常启动和运行

包结构

说明

com.liferay.portlet

Liferay Portlet的一些基础类

com.liferay.portlet.admin

管理portlet

你可能感兴趣的:(spring,数据结构,应用服务器,struts,企业应用)