在Liferay学习时,刚开始可能你会不习惯Liferay的目录结构,对里面那么多的目录弄晕,更晕的是会有很多同名的Service, LocalService, Util类,让你搞不清楚应该用哪个。
其实这些都很简单,如果你有J2EE设计模式的经验,应该不难发现,这些其实都是在分层,而分层的目的,就是以增加“复杂性”为代价,提供更加灵活的扩展性(呵呵,个人意见)。
下面就是对Liferay包结构的一个简单总结。copyright by smilingleo
包 | 类或页面 | 说明 |
webroot/html/portlet/xxxx | xxxx.jsp, XXXAction | 在页面或Action中调用服务 |
portal-service/../[portlet]/service | XXXXLocalServiceUtil | 服务Facade封装 |
portal-service/../[portlet]/service | XXXXLocalService | 服务接口 |
portal-impl/../[portlet]/service/impl | XXXXLocalServiceImpl | 接口实现 |
portal-impl/../service/persistence | XXXXFinder, XXXXPersistence(Impl) | 持久层实现 |
util-java/../dao/hibernate | QueryPos etc. | 一些辅助类工具 |
在Liferay源码中,分了两个包portal/portlet,无论是在src中,还是在docroot/html中,portal主要是门户系统框架必须的一些内核,比如处理登录、布局、处理session、flash等等;而portlet目录就是各个内核之外的一些可添加的Portlet资源。