美文网首页
iBizSys模板简介

iBizSys模板简介

作者: MoneyQ | 来源:发表于2019-05-06 16:40 被阅读0次

在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<KH> {
    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<CP> {
    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模板简介

    在iBizSys中除了业务模型之外,模板也是一个重要的组成部分。系统、文档等成果物都可以通过模板来进行生成。但是一...

  • freemarker 模板

    freemarker 模板 目录 简介 文件结构 参考 简介 Android Studio 提供了不少模板,包括 ...

  • GeekBand STL与泛型编程 第一周

    1.模板观念与函数模板 课程主要内容 C++模板简介 泛型编程 容器 进阶 C++模板简介   generic t...

  • (笔记)php-smarty模板引擎

    一、模板引擎简介 什么是模板? 所谓模板就是指无PHP代码,只有HTML+CSS+JS。 什么是模板引擎? 模板...

  • Python Web框架--框架Flask--模板Jinja(三

    一、模板简介 Jinja 模板的使用方法。 模板标签  其实Jinja 模板和其他语言和框架的模板类似,反正都是通...

  • 精美商务PPT简介模板

    下载地址:精美商务PPT简介模板.zip 下载地址:精美商务PPT简介模板.zip 下载地址:风云社区SCOEE

  • artTemplate 总结

    编写模板 渲染模板 简介语法 方法 template(id,data) 根据id渲染模板,内部会根据documen...

  • 2.1 模板简介

    模板简介: 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样...

  • 模板工程简介

    1 bing-upms 2 slife 3 iartisan-admin-template 4 guns

  • Geekband C++ 第五周

    概述 C++模板简介 函数模板 C++类模板 操作符重载 泛型编程 容器

网友评论

      本文标题:iBizSys模板简介

      本文链接:https://www.haomeiwen.com/subject/suymjftx.html