壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 866|回复: 0

Liferay研究之五:Liferay的MDA开发模式

[复制链接]
发表于 2010/6/1 14:49:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
Liferay其实不单单是一个开源的门户产品,同时也是一个很好的开发框架。
Liferay采用了MDA(模型驱动开发架构)的开发模式,具体来讲,就是开发一个模块前,需要先通过配置定义Model, Service,通过ServiceBuilder工具根据定义自动创建dao, service interface, service impelmention, util facade 此外,也通过custom-sql机制让用户进行扩展。有了这个MDA的概念之后,你就能比较顺利的了解Liferay的开发模式。smilingleo原创
1、对于简单的应用,可直接通过service定义后build-service-xxx
2、对于复杂的应用,可以先在ServiceImpl类中实现对应的类,然后build-service-xxx将这个方法(接口),自动繁衍到所有的Service, Util类中。(从底层到顶层的驱动)
具体来讲:
1、在service.xml中定义RelationshipFinder方法(可以不定义),之后运行ant build-service,这样就可以生成对应的Util, Persistence, PersistenceImpl类及对应方法;
具体来说,是在Persistence中添加addRelatedObject,addRelatedObjects, getRelatedObjectList,getRelatedObjectListSize, containRelatedObjects,clear, remove等对关系的增、删、改、查对应方法; smilingleo原创
注意:此处的Finder方法,仅仅是根据Entity的某个或某些域来查询Entity结果; Custom-SQL中定义的find方法不一样。前者是定义之后自动生成的,也就是通过ServiceBuilder创建的;而后者必须手工添加。
从逻辑关系上讲:XXXXFinderXXXXPersistanceImpl在层次上是对等的,都直接被XXXXServiceImpl调用。
2、如果你想定制查询,比如多表查询,则需要定义custom-sql\xxx.xml. ,手工编写XXXXFinder对应的finderBy方法(或者countBy方法),然后再在ServiceImpl类中封装对应的方法;之后ant build-service-xxxxx.这样就将对应的业务方法“繁衍propagate”到所有Service, Util类中了。smilingleo原创
3、编写JSP页面通过Util类实现业务方法调用。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/smilingleo/archive/2007/11/27/1903859.aspx

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 15:22 , Processed in 0.011859 second(s), 15 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表