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

本文介绍Liferay采用的模型驱动开发(MDA)模式,包括如何通过ServiceBuilder工具自动生成DAO、Service接口等,以及如何利用custom-sql机制进行扩展。文章还详细解释了简单和复杂应用的开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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中定义Relationship及Finder方法(可以不定义),之后运行ant build-service,这样就可以生成对应的Util, Persistence, PersistenceImpl类及对应方法;
具体来说,是在Persistence中添加addRelatedObject,addRelatedObjects, getRelatedObjectList,getRelatedObjectListSize, containRelatedObjects,clear, remove等对关系的增、删、改、查对应方法; smilingleo原创

注意:此处的Finder方法,仅仅是根据Entity的某个或某些域来查询Entity结果; 与Custom-SQL中定义的find方法不一样。前者是定义之后自动生成的,也就是通过ServiceBuilder创建的;而后者必须手工添加。

从逻辑关系上讲:XXXXFinder与XXXXPersistanceImpl在层次上是对等的,都直接被XXXXServiceImpl调用。

2、如果你想定制查询,比如多表查询,则需要定义custom-sql/xxx.xml. ,手工编写XXXXFinder对应的finderBy方法(或者countBy方法),然后再在ServiceImpl类中封装对应的方法;之后ant build-service-xxxxx.这样就将对应的业务方法“繁衍propagate”到所有Service, Util类中了。smilingleo原创

3、编写JSP页面通过Util类实现业务方法调用。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值