首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WebGenerate 产品介绍

北京劳恩斯科技有限公司

网址:

WebGenerate降本增效的代码生产工具,经过WebGenerate生产的代码适用于Spring、MyBatis、Maven构建的JavaEE工程。

WebGenerate生产的工程属于半成品,经过简单的修改既可使用。可以减少开发难度及成本、缩短开发周期、提高代码质量、减少错误调试。

WebGenerate生产的工程界面美观、大方、简单、实用,界面实现了总体、模块的个性化布局控制,用户也可以迅速更换最终用户所需要的主题。

WebGenerate生产工程的过程简单,1分钟即可轻松搞定一个完整的基础工程。

1.功能概述

概况图

WebGenerate支持两种模式、三种数据库。

在线模式:适用于已建立了数据库,并且数据库更新比较频繁的项目。

离线模式:用户仅需要提交DDL的SQL文件,即可生产工程。

WebGenerate生产代码的过程非常简单:

1)用户通过WebGenerate后台管理系统创建项目,并填写数据库信息(或提交SQL文件);

2)完成上面的步骤后,即可生成工程文件,包括生成完整包、生成框架包、生产基础包等。

2.设计概述

WebGenerate设计之初目的是减少开发成本、提供开发质量、加强软件项目的管理和风险控制。

WebGenerate进行了深度分层设计,使项目管理人员、设计人员、开发人员更加专注于各个环节(或模块)的管理、设计、开发。如下图:

思维导图

WebGenerate在传统的MVC模式基础之上再次对每个环节解耦和封装,这样带来的好处如下:

1)展示系统:实现了总体和局部、功能和布局的分离式设计,使页面逻辑更加清晰;

JSP:仅含有页面框架的HTML代码;

CSS:

a.主控css:控制整个工程的风格、布局、样式;

b.各个模块的css:控制各个模块独有的风格、布局、样式。

JavaScript:

a.公共部分:提供了大量的工具类、函数、和组件;

b.各个模块:

common.js集成了页面的变量、标签、和访问地址等;

index.js实现了所有的页面功能。

展示系统中jsp、js、css的基础功能代码均由WebGenerate生成,前端设计、开发人员可以更加专注于提高用户体验、以及视觉效果等。

2)业务系统,我们从以下三个角度去了解业务系统:

框架角度:WebGenerate会自动生产基础框架代码、以及和数据表匹配的jsp、js、css、controller、service、DAO、model、viewer等代码,其次,实现了对session、servlet生命周期的监听、管理,实现了按角色、功能、权限等多维度的权限管理策略,实现了白名单对请求的过滤、控制;实现了事务、日志等基础框架功能的配套实施。

性能角度:增加了对数据缓存的功能,用户可以根据需要使用本地缓存、或分布式缓存。在服务启动的时候,用户可以根据需要将数据放入缓存,目前的缓存设计是使用数据表的主键值作为单项KEY;

模型角度:分为数据模型和展示模型,数据模型相对应数据表,展示模型是对数据模型的继承和扩展,主要用于和页面交互。模型的扩展主要使用缓存,减少了与数据库的交互次数、以及复杂SQL的使用。

3)专项技术(组件池),主要由用户自行开发,我们也会提供与工程配套的简单的专项技术,如加密、解密等。专项技术可以依赖Maven建立父子工程,也可以直接建立单独的工程,最后以jar的方式引入。

4)项目管理,融入了PMP管理思想,在时间、成本、进度、周期等方面,我们做了大量的思考、设计,WebGenerate在代码方面做得更全面、更规范,降低了开发难度、提升了开发效率、有利于对风险管理和控制,使团队合作更加紧密、也更容易协调。

3.功能及使用WebGenerate包括四个模块:在线模式、离线模式、表信息、字段信息。3.1.在线模式

主要用户用户已在线(已存在)的数据库。如下图:

图一

提供了列表、分页、排序、搜索、新增、模板、导入、导出、编辑、删除的功能,除了这些基本功能之外,还提供了如下的功能:

生成完整包:包含基础包、框架包等所有代码的工程包;

生成框架包:包含公共代码、开源项目的框架文件包;

生成基础包:根据所有数据表生成的基础代码包;

“新增项目管理”界面如下图:

图二

名称:用于平台显示的项目名称;

编码:用于工程名;

java基础包:生成的java文件所在的公共包路径;

关键字:用于HTML语言的meta标签(keyword);

数据库类别:支持MySQL、SQLServer、Oracle;

IP:数据库服务器的IP;

端口:数据库的服务端口;

用户名:登录数据库的用户名;

密码:登录数据库的密码;

公司中文名称、公司英文名称、开发者、电话、QQ、微信、邮箱、网址均用于生成相关文件的注释信息。

3.2.离线模式

主要用于使用sql文件生产相关工程文件的场景。如下图:

图三

提供了列表、分页、排序、搜索、新增、模板、导入、导出、编辑、删除的功能,除了这些基本功能之外,还提供了如下的功能:

生成完整包:包含基础包、框架包等所有代码的工程包;

生成框架包:包含公共代码、开源项目的框架文件包;

生成基础包:根据所有数据表生成的基础代码包;

“新增项目管理”界面如下图:

图四

名称:用于平台显示的项目名称;

编码:用于工程名;

数据库类别:支持MySQL、SQLServer、Oracle;

java基础包:生成的java文件所在的公共包路径。

关键字:用于HTML语言的meta标签(keyword)。

公司中文名称、公司英文名称、开发者、电话、QQ、微信、邮箱、网址均用于生成相关文件的注释信息。

3.3.表信息

这里我们可以维护表的基本信息,如下图:

图五

提供了列表、分页、排序、搜索、新增、模板、导入、导出、编辑、删除的功能,除了这些基本功能之外,还提供了如下的功能:

预览代码:根据表生成的所有类型的基础代码均可以在这里预览,如下图:

图六

可以预览的基础代码包括:cache、controller、dao、model、service、viewer、mapper(xml)、css、js、jsp、sql等文件,且每种类别的代码都有相应的高亮显示。

生成代码:可以选择一张、或多张表来生成基础代码。在我们做项目过程中,经常会修改表、视图,那么,我们可以从这里选择修改过的表、或者视图,来生成相应的基础代码。

“新增表管理”界面如下图:

图七

名称:用于页面元素的标题;

编码:用于代码的类名;

注释:用于类注释;

类别:仅支持表、或视图;

隶属项目:选择隶属的项目。

3.4.字段信息

用户来维护表、和页面显示的关系。如下图:

图八

提供了列表、分页、排序、搜索、新增、模板、导入、导出、编辑、删除的功能。

“新增字段管理”界面如下图:

图九

名称:用于显示页面元素的title;

编码:生产代码使用;

注释:用于model类

数据类型:字段类型,生产model时,会生产对应的类型;

长度:字段类型的长度;

小数位数:小数位数;

允许空:字段是否允许空;

默认值:字段类型的默认值;

主键:该字段是否为主键;

隶属项目:隶属于哪个项目;

隶属表:隶属于哪个表;

外键表:对应的外键表,用于在controller中的prop函数进行属性拓展使用;

外键字段:对应的外键表需要显示的字段,用于在controller中的prop函数进行属性拓展使用;

列表显示:是否在列表显示;

表单显示:是否在表单显示;

表单必填:用于生产的页面元素是否为必填项;

提示显示:页面错误的提示信息;

HTML元素:页面显示的HTML元素类型;

排序:字段显示的顺序;

4.工程介绍

WebGenerate生产的代码适用于SSM+Maven的工程,生产的代码包含公共代码、数据表对应的基础代码、以及开源产品等。生成代码的类别包括js、jsp、css、java、xml等,工程框架如下图:

框架图

从框架图上,我们可以了解生成代码的全部结构,在展示系统的开源产品、和业务系统的开源产品中间的内容,为WebGenerate生成的基础代码。

从颜色上,我们又可以把内容分为上、中、下三部分:

(上部)展示系统:包括开源产品、公共技术、个性布局、标签及路径、功能控制、基础页面;

(中部)业务系统:包括页面模型、缓存系统、分发控制、业务逻辑、数据交互、数据模型、SQL映射、公共技术、开源产品;

(下部)组件池/专项技术:可以包括互联网/互联网+、电子商务/金融、大数据、云计算、虚拟化、操作系统、AI人工智能、深度学习、神经网络、应用数据、搜索引擎等,不过,目前这部分需要用户自行开发。

中间红色方框的部分,可以理解为逻辑组件,每张数据表对应一个逻辑组件,每个逻辑组件包含了从前端到后台的完整功能,其中包括列表展示、分页、排序、新建、详情、编辑、删除、批量删除、导入、导出、查询等功能。

5.其他事项5.1.数据表必须字段:

id:长整型 必须为主键;

name:为主键ID的名称或title;

user_id:创建人;

datetime:创建时间;

hide_id:逻辑状态;

5.2.数据表示例:

MySQL:

CREATE TABLE `code` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`name` varchar(100) DEFAULT NULL,

`code` varchar(100) DEFAULT NULL,

`desc` text COMMENT '描述',

`parent_id` bigint(20) DEFAULT NULL COMMENT '隶属',

`user_id` bigint(20) DEFAULT NULL COMMENT '创建人',

`datetime` datetime DEFAULT NULL COMMENT '日期',

`hide_id` bigint(20) DEFAULT NULL COMMENT '隐藏',

PRIMARY KEY (`id`)

);

SQLServer:

CREATE TABLE [software](

[id] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY,

[name] [varchar](512) NULL,

[code] [varchar](512) NULL,

[desc] [varchar](512) NULL,

[user_id] [bigint] NULL,

[datetime] [datetime] NULL,

[hide_id] [bigint] NULL

)

Oracle:

CREATE TABLE "code" (

"id" NUMBER(20) NOT NULL ,

"name" VARCHAR2(512 BYTE) NULL ,

"code" VARCHAR2(512 BYTE) NULL ,

"desc" VARCHAR2(512 BYTE) NULL ,

"user_id" NUMBER(20) NULL ,

"datetime" TIMESTAMP(6) NULL ,

"hide_id" NUMBER(20) NULL

);

ALTER TABLE "code" ADD PRIMARY KEY ("id");

5.3.代码统计

100张表、970个字段生产的代码统计信息如下:

微信公众号

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171209G0B3KF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券