iBizSys模板简介
在iBizSys中除了业务模型之外,模板也是一个重要的组成部分。系统、文档等成果物都可以通过模板来进行生成。
但是一提到模板,可能大家就会觉得它是一个很高大上很神秘的样式,但是如果我们从本质上去看,其实它就是一个及其简单的内容。使用模板的目的是让程序员摆脱重复、模式化、低价值的代码。
今天就按照一个小示例来了解一下平台中的模板。
首先我们先来看一下客户(KH)实体与产品(CP)实体这两个实体Service的代码片段。
package com.sa.ibiz.demo.srv.demo.service;
import com.sa.ibiz.demo.srv.demo.entity.KH;
import com.sa.ibiz.demo.srv.demo.dao.KHDAO;
import com.sa.ibiz.demo.srv.demo.demodel.KHDEModel;
/**
* 实体[KH] 服务对象基类
*/
@Component
public class KHService extends com.sa.ibiz.demo.srv.DemoSysSysServiceBase {
private static final Log log = LogFactory.getLog(KHService.class);
/**
* 实体数据集合[DEFAULT]标识
*/
public final static String DATASET_DEFAULT = "DEFAULT";
public KHService () {
super();
}
}
package com.sa.ibiz.demo.srv.demo.service;
import com.sa.ibiz.demo.srv.demo.entity.CP;
import com.sa.ibiz.demo.srv.demo.dao.CPDAO;
import com.sa.ibiz.demo.srv.demo.demodel.CPDEModel;
/**
* 实体[CP] 服务对象基类
*/
@Component
public class CPService extends com.sa.ibiz.demo.srv.DemoSysSysServiceBase {
private static final Log log = LogFactory.getLog(CPService.class);
/**
* 实体数据集合[DEFAULT]标识
*/
public final static String DATASET_DEFAULT = "DEFAULT";
/**
* 实体数据集合[有效产品]标识
*/
public final static String DATASET_YXCP = "YXCP";
public CPService () {
super();
}
}
从代码中可以发现其中从内容上而言,除了两者KH和CP的区别,其他内容均为重复的内容。
接下来我们来看下生成以上Service代码片段的模板部分,其中将代码包路径、实体名称、数据集合名称等动态化的内容由模板参数进行替换。
package ${pub.getPKGCodeName()}.srv.${item.getPSSystemModule().codeName?lower_case}.service;
import ${pub.getPKGCodeName()}.srv.${item.getPSSystemModule().codeName?lower_case}.entity.${item.codeName};
import ${pub.getPKGCodeName()}.srv.${item.getPSSystemModule().codeName?lower_case}.dao.${item.codeName}DAO;
import ${pub.getPKGCodeName()}.srv.${item.getPSSystemModule().codeName?lower_case}.demodel.${item.codeName}DEModel;
/**
* 实体[${item.codeName}] 服务对象基类
*/
@Component
public class ${item.codeName}Service extends ${pub.getPKGCodeName()}.srv.${item.getPSSystem().codeName}SysServiceBase<${item.codeName}>{
#if>
#if>
private static final Log log = LogFactory.getLog(${item.codeName}Service.class);
<#list item.getAllPSDEDataSets() as dedataset>
/**
* 实体数据集合[${dedataset.logicName}]标识
*/
public final static String DATASET_${dedataset.name?upper_case} = "${dedataset.name}";
#list>public ${item.codeName}Service (){
super();
}
}
对于模板中的模型参数
pub.getPKGCodeName()
获取配置的代码包名item.getPSSystemModule().codeName
获取实体的系统模块的代码名称item.codeName
获取实体的代码名称平台里通过对象运行时的形式便于大家快速的去进行查看模型,下面我们就来了解平台中的对象运行时。
从运行时中可以看到
pub.getPKGCodeName()
就对应了com.sa.ibiz.demo
文章图片
后台服务运行时获取代码包名
文章图片
实体运行时获取系统模块的代码名称
文章图片
实体运行时获取实体代码名称
【iBizSys模板简介】通过以上的小示例,相信大家应该已经能够了解到,编写模板本身是一个非常简单的过程,而困难的是如何来规划一个模板架构使得其可以最大程度的使用业务的模型。
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- java简介|Java是什么(Java能用来干什么?)
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 什么是张拉膜结构雨棚(有哪些特点?)
- ACI注册国际心理咨询师简介和可靠性分析
- 新一代Python包管理工具
- 通过复盘快速成长(附模板)
- 黑猴子的家(Flume简介)
- Elasticsearch|Elasticsearch 简介