Liferay的体系是很庞杂的。
Liferay 受其企业版本影响不小,毕竟Liferay公司主要还是“企业行为”,而不是一个单纯的一个“开源团体”行为。所以Liferay Portal本身内嵌了大量的Portlet,而且这些Portlet和Liferay Portal Framework甚至还有些交融。这就是为什么liferay portal-ejb.jar会有3M多。
虽然我们可以通过修改system.properties,portlet.properties,protal-spring这些基础配置文件来修改声明哪些服务不需要加载,也可以通过修改 WEB-INF目录下的portlet.xml,liferay-portlet.xml以及liferay-display.xml这些文件来删除一些不需要的portlet。
但是,我想真正敢真么干的,估计很少。这是为什么呢,就是应为Liferay内部实现的结构和代码,并不是非常良好。而对于这一块的优化,也没有很详细的帮助使用手册。在Liferay的网站上,只有一些教开发人员如何部署在不同服务器和数据库,如何新增一些portlet和theme,以及如何修改权限方面的浅显参考手册。
接下来就讲一讲对Liferay的瘦身操作,让Liferay变成一个只提供最基本的Portal框架和部署机制的portal context,而去掉那些多余的portlet。—— 因为这些多余的portlet大多国内的项目没有任何利用价值,但是如果需要部署的话,则会大大影响系统响应性能,而且让开发也变得比较麻烦。
当然,是否按照我今天说的方式对Liferay进行瘦身,这全凭习惯。有些朋友不愿改变Liferay的结构,只希望单纯通过配置来加载,也是可以的。
(1)保留Liferay最基本的一些组件
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服务)。这个实际上应该属于可选的,如果觉得需要的话,也可以纳入。
(2)保留Liferay的Portal基础服务
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
|
|
com.liferay.portal.servlet
|
|
com.liferay.portal.spring
|
|
com.liferay.portal.struts
|
|
com.liferay.portal.theme
|
提供对“主题”,也就是界面风格的支持
|
com.liferay.portal.tools
|
|
com.liferay.portal.util
|
|
com.liferay.portal.velocity
|
|
com.liferay.portal.wsrp
|
|
其实我们可以把Liferay这些portal服务再缩简一些,但刚开始建议大家不要随便的删减,保留原始的即可。
(3)缩减portlet应用
Liferay提供了大量的portlet应用,有大概七八十个。正应为这些portlet的加载和部署,让Liferay启动缓慢,消耗系统资源多。实际上,保持Liferay Portal正常运行,只需要其中几个就可以了,剩下的,我们可以根据需要进行删减。
下面列出了一些最基本的portlet,只需要保留如下的这些portlet即可保证liferay的正常启动和运行
包结构
|
说明
|
com.liferay.portlet
|
Liferay Portlet的一些基础类
|
com.liferay.portlet.admin
|
管理portlet
|
com.liferay.portlet.calendar
|
日期portlet虽然可以不需要,但是其内部提供对job的调度。
|
com.liferay.portlet.communities
|
这个是负责配置用户其所在的group,利用可以配置用户所拥有的工作区。
|
com.liferay.portlet.enterpriseadmin
|
|
com.liferay.portlet.language
|
|
com.liferay.portlet.layoutconfiguration
|
|
com.liferay.portlet.login
|
|
com.liferay.portlet.myaccount
|
用于配置用户信息
|
com.liferay.portlet.myplaces
|
用于控制用户的工作区选择
|
com.liferay.portlet.portletconfiguration
|
|
com.liferay.portlet.themegallery
|
用于控制主题风格
|
com.liferay.portlet.translator
|
这个包必须要,虽然portlet可以不用,但是被portal.language包引入了
|
com.liferay.portlet.wsrp
|
这个包必须要。
|
只需要保证如上的portlet在系统中,即可保证Liferay的正常运行。
但是,不以为只需要简单得讲起他的Porlet删除即可,那就大错特错了。Liferay在这一层面做的非常不友善,内部代码由一点点地耦合。很多地方依靠写if else来判断,所以造成了在portal这个服务包中,竟然存在很多地方引用portlet中的类。
不过这个倒不难修改,只需要花费一点点时间,简单修改一下就可以了。比较容易,此处就不多说。
(4)从配置文件中删除无用
相关推荐
Liferay的强大之处在于其丰富的功能集和灵活的架构设计,允许开发者快速构建复杂的企业级应用。掌握这些基本操作后,您可以进一步探索Liferay的高级特性,如主题开发、服务构建等。希望本文档对您的学习有所帮助!
- **支持的技术框架**:Liferay 内置了对多种开发框架的支持,如 Spring、Struts 和 JSF,使得开发者可以根据需求选择合适的框架进行开发。 #### 1-3 节 扩展和自定义 Liferay Liferay 允许开发者通过以下方式...
9. 企业级功能:Liferay还提供许多企业级的特性,例如单点登录、搜索引擎优化、集群支持等,这些都可能是学习重点。 10. 最佳实践和案例研究:介绍在实际开发过程中如何应用Liferay以及一些案例研究,帮助读者更好...
- **下载所需文件**:Liferay IDE Eclipse 更新站点、Liferay 插件 SDK、Liferay 门户与 Tomcat 服务器、Liferay 门户 SQL 脚本以及 PostgreSQL 数据库。 - **安装 Liferay 数据库**:使用 `create-mysql.sql` 或 ...
本篇文章将详细讲解如何在基于Myeclipse 6和Tomcat 6.0.24的环境中搭建Liferay 5.2.3的二次开发环境。 **一、环境准备** 在开始Liferay的开发工作之前,我们需要准备好以下软件: 1. **Myeclipse 6**: 这是一个...
- **配置Tomcat服务器**:Liferay通常运行在Servlet容器上,如Tomcat。在Eclipse中添加Tomcat服务器,然后将Liferay项目部署到服务器上。 3. **MySQL数据库集成** - **安装MySQL**:确保你已经在本地或远程服务器...
`<liferay-ui:search-container>` 标签是Liferay中最强大的UI标签之一,它提供了一个完整的搜索界面,包括过滤器、排序、分页等功能。开发者只需要提供数据源和字段定义即可。 ### 示例和代码 在实际应用中,这些...
对于基于Liferay平台的应用开发来说,选择合适的集成开发环境(IDE)是提高开发效率的关键之一。本文将详细介绍如何在Eclipse 3.6以上版本中搭建Liferay 6.1的开发环境,并通过图文并茂的方式,指导开发者如何在...
6.0.6版本在稳定性与性能上有所提升,适合开发者和企业进行二次开发。 2. 安装纯净版Eclipse: Eclipse作为主流的Java开发工具,被用于Liferay的开发环境。安装纯净版Eclipse可以避免插件冲突,确保开发过程顺利。 ...
对Liferay源码的研究有助于理解其工作原理,例如,如何处理portlet请求、用户认证与授权流程、数据缓存机制等。开发者可以通过阅读Liferay的源码学习到高级Java编程技巧、企业级应用的架构设计以及模块化的实现方式...
1. **源码分析**:由于Liferay是开源的,开发者可以深入研究源码,理解其工作原理,并基于源码进行二次开发。 2. **开发工具**:除了基本的JDK和Maven,开发者可能还需要使用诸如Liferay IDE这样的专用工具,它提供...
【Liferay Portal额外研究】 Liferay Portal是一款开源的企业级门户平台,它提供了丰富的功能和高度的可定制性,用于构建企业内部或外部的网站、工作流应用和协作平台。在这个额外研究中,我们将探讨如何在新的...
2. **LifeRay二次开发指南**:二次开发指南是针对已经熟悉LifeRay基础的开发者,它可能会详细讲解如何基于LifeRay的开放源代码进行定制化开发,包括创建自定义主题、布局、portlet、服务等,以及如何利用LifeRay的...
Liferay的Search Container标签是其UI标签库中的核心组件之一。它提供了一种声明式的方式来创建带有过滤、排序和分页功能的搜索界面。开发者只需要定义数据源、搜索字段和结果渲染方式,剩下的工作由Search ...
7. 安全与权限管理:Liferay的权限模型允许开发者精细控制用户对内容和功能的访问权限。 通过深入理解Liferay Portal的架构和二次开发方法,开发者可以构建出满足企业需求的高效、可扩展的Web应用。无论是为了集成...
### Liferay Portal 二次开发指南 #### 一、Liferay Portal 架构解析 ##### 1.1 Portal规范 Liferay Portal遵循了两种主要的门户规范:JSR 168 和 WSRP (Web Services for Remote Portlets)。JSR 168是一个Java...
扩展模式允许开发者对Liferay的核心功能进行更深入的定制和扩展,以满足特定业务需求。 首先,我们需要确保具备正确的开发环境。以下是必要的组件和配置: 1. **JDK**:至少需要JDK 1.5。确保系统环境变量中设置了...
- **概述**:Liferay Social Office是Liferay提供的一个增强版组件,旨在进一步提升企业的协作效率。 - **功能**: - 社交化特性:集成社交网络功能,支持用户之间的互动与交流。 - 协作工具:提供在线文档编辑、...
4. **权限和角色**:Liferay有强大的权限系统,可以精确控制不同用户组对内容和功能的访问。 5. **国际化和多语言支持**:Liferay支持多种语言,对于跨国企业尤其重要。 6. **服务和API**:Liferay提供大量的服务...
- **为企业创造个性化和方便定制**: Liferay提供了一套强大的工具集,允许管理员根据企业的特定需求进行高度定制,包括用户界面、功能模块以及整体体验。 - **适应工作流**: 支持企业自定义业务流程,能够无缝集成到...