在Liferay二次开发中使用ServiceBuilder

来源:互联网 发布:mac上安装mysql 编辑:程序博客网 时间:2024/05/22 16:01

在Liferay二次开发中使用ServiceBuilder:

根据Xml描述文件,使用ServiceBuilder可以产生如下信息:

Java Beans
SQL scripts for database tables creation
Hibernate Confguration
Spring Confguration
Axis Web Services
JSON JavaScript Interface

下面是此xml举例:

<?xml version="1.0"?><!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 5.2.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_5_2_0.dtd"><service-builder package-path="com.ext.portlet.reports"><namespace>Reports</namespace><entity name="ReportsEntry" uuid="true" local-service="true" remote-service="true"persistence-class="com.ext.portlet.reports.service.persistence.ReportsEntryPersistenceImpl"><!-- PK fields --><column name="entryId" type="String" primary="true" /><!-- Audit fields --><column name="companyId" type="String" /><column name="userId" type="String" /><column name="userName" type="String" /><column name="createDate" type="Date" /><column name="modifiedDate" type="Date" /><!-- Other fields --><column name="name" type="String" /><!-- Order --><order by="asc"><order-column name="name" case-sensitive="false" /></order><!-- Finder methods --><finder name="CompanyId" return-type="Collection"><finder-column name="companyId" /></finder><finder name="UserId" return-type="Collection"><finder-column name="userId" /></finder></entity><exceptions><exception>EntryName</exception></exceptions></service-builder>


 

service.xml编写规范

序号属性名必须描述1service-builder ->package-path必填包路径2namespace必填命名空间3entity->name必填实体名4entity->table必填数据库表名称5entity->local-service必填本地服务6entity->remote-service必填远程服务7column->primary必填每个实体中至少有一个主键,primary="true"表明该列是主键

然后在ext ext-impl中的build.xml中添加相应的任务:

<target name="build-service-portlet-reports"><antcall target="build-service"><param name="service.file" value="src/com/ext/portlet/reports/service.xml" /></antcall></target>


 

下面就可以使用Ant。

在Ant build-service-portlet-reports的任务中,可以明显看到调用了build-service

而透过Ant build-parent.xml可以清晰的看到执行com.liferay.portal.tools.ServiceBuilder

经过查询com.liferay.portal.tools.ServiceBuilder的源代码,我们可以清晰的看到他的执行过程

它首先会获取Ant 任务参数获取,然后创建ServiceBuilder实例。。。。。。

其实根据这个ServiceBuilder我们可以清晰的明白中hibernate spring 清晰的业务处理关系。

 

摘自:http://blog.sina.com.cn/s/blog_560001530100fbgb.html

原创粉丝点击