Liferay开发模式
Liferay开发模式:
Portlet:简单说就是提供一个独立的war包放到应用服务器里面,每一个portlet都是一个独立的,直接部署到webapp下面。涉及的几个配置文件:
portlet.xml:存储portlet基本信息,包括名称,portlet的实现类,初始化参数等。
liferay-portlet.xml:liferay的portlet定义描述文件,是liferay对portlet.xml的扩展描述,允许我们对portlet的呈现、功能和行为进行更深入的定制。它与com.liferay.portal.model.Portlet类对应,包括对应的js,css,友好url等。
liferay-display.xml:portlet发布的位置等信息
Ext模式,它提供了Liferay的扩展,使用Liferay的API或者重写Liferay核心库,同时也是一个缺点,不易于维护。
Hook:是Liferay 5.1后提出的,Hook提供基本的liferay核心库功能的重写,它也是支持热部署。主要场景:portal的启动或者用户登录,重写或者扩展portal jsps,修改portal properties,或者使用自己的实现替换portal service。
Layout: portlet在页面的布局,它由一些简单的表格或者css容器,然后portlet可以放入其中
两种模式比较
插件模式优点
插件模式开的是独立的web工程,优点非常明显,只要遵循JSR,就可以任何Web方式开发,对liferay基本上没有依赖,耦合很低,可以非常方便部署、开发、迁移。便于应对以后的Liferay版本升级,基本上不存在啥成本,copy相应的war包过去即可。
插件模式缺点
在优点明显的同时,缺点也很明显。每个都是独立的war包,代码之间的共享访问很难,同时不能调用Liferay的API。
扩展模式优缺点
扩展模式和插件模式刚好相反,扩展模式的优点就是插件模式的缺点;扩展模式的缺点就是插件模式的优点。