“软工厂代码生成工具”的学习笔记

  软件代码的生成工具屡见不鲜,用起来各种问题层出不穷,改东改西BUG繁多。本想着用工具来避免没必要的劳动提高开发效率,到最后却不尽人意。

  逐渐研究过一些代码生成工具之后感触颇深。闲话短说,先聊一下我的使用经验,有兴趣的开发哥们可以看一下

 第一步:要使用一个工具或者软件首先看的是咱们的硬件配置及软件环境:

  JDK:1.5版本

  CPU:最好是大于1GH

  内存:大于512M(这个就不用说了)

  硬盘的存储空间:大于512M(同上)

  操作系统:windows、linux

  浏览器:现在只支持IE浏览器,而且IE6以上版本要开启兼容模式

第二步:当然是下载安装了

   去网站上下载,下载解压文件后包含“软工厂“的war包和数据库备份文件(MySQL数据库备份)。

   将war包发布,如发布到本地D:/Tomcat/webapp目录下,根目录为softFactory 安装MySQL数据库,如数据库名称为SFDB,安装完成后将数据库备份文件导入到新按照的MySQL数据库中;修改表a1_admission_host中各记录中的IP地址,将所有127.0.0.1:8080改为:服务器主机IP:端口。也可以不修改原有数据,而拷贝建立新的数据,并设置为服务器IP和端口。

  打开文件D:/Tomcat/webapp/softfactory/WEB-INF/classes/systemPath.properties,设置systemPath=D:/ Tomcat/webapp/softfactory

  打开文件D:/Tomcat/webapp/softFactory/WEB-INF/classes/db.properties,配置数据库连接地址为本地数据库

  打开文件D:/Tomcat/webapp/softfactory/WEB-INF/spring/ applicationContext-resources.xml,修改数据库连接地址

  注:以上内容配置完成后启动服务器(这里是Tomcat),访问http://localhost:8080/softfactory,显示软工厂的首页,说明安装成功。

  安装成功后,要去网站上注册信息保存。(这个就不多说了)

  使用新注册的管理员账号登陆,进入综合管理模块的部门管理菜单,在该模板中添加部门,如项目一部。

  进入综合管理的用户管理菜单,在该模块中添加用户

  添加的用户登录后就可以使用软工厂了(终于可以使用了,虽然有点繁琐,但是相比来讲还是比较省力的,所以大家还是一步步的来,为了提高咱们的开发效率值得了。)

  下面我在讲一下“软工厂”的几个模板管理包括(数据源管理、表管理、对象管理中配置对象和属性等具体的知识要点。然后进行一个简单的增删改查操作,有兴趣的可以交流一下,多学点东西总没坏处。)

   下面开始讲解知识要点和实例操作

   

   在使用软工厂进行开发的过程中,首先,在项目管理中创建目标项目,项目创建成功后,为项目配置人员和包前缀名称。其中,只有属于该项目的人员才能在其表管理和对象管理中管理该项目的资源,否则不显示;

   在项目管理过程中,表管理用来定义目标系统的数据结构,包括表名称、字段类型、字段长度等;对象管理用来定义目标系统的业务逻辑,如页面展现方式、编辑元素类型、是否作为列表字段、是否作为查询条件等。

   其中,业务逻辑的定义依赖于数据机构的定义,即表管理,软工厂中表的来源有通过PDM上传提取表、通过自定义SQL创建表和手工添加表三种;表管理中需要设置表名称、字段类型、长度等数据结构内容。数据结构定义完成后,在表管理的基础上进行对象管理,对象通常通过表转化而来,对象管理中包括对象配置、属性管理和代码生成三部分内容。

   代码生成是根据对象管理中设置的对象关系或对象属性来工作的,即对象管理是开发人员工作的主题,表管理为对象管理服务,那么,表从何而来呢,以下介绍表生成的几种方式:

(1)PDM上传(这个是常用到的)

      将项目的数据库设计文件(PDM文件)上传到软工厂中,平台自动将PDM文件中设计的表解析为软工厂中的表,上传后能够在表管理中查看到生成的表。在平台中可以对表进行修改,如字段中文名称等。

     一般情况下,在项目开发之前有项目负责人将设计好的PDM上传到软工厂中,开发人员只需对生成的表进行配置。

 (2)自定义SQL了

   通过自定义SQL查询将查询结果(多为视图)生成平台中的表。使用自定义SQL建立表时需要建立目标系统的数据源,即在数据源管理中添加目标系统数据库的链接地址、用户名、密码等。

  表的管理

   数据库设计文件(PDM文件)上传后被解析为表,并在表管理中显示,表中的部分字段从PDM文件中提取,开发人员可以设置表信息和字段信息,设置完成后点击“转化对象”按钮,表被转化为相应的对象。

   除了通过PDM上传的方式获取表数据外,还可以通过手工添加的方式添加表,先添加表再添加表字段,添加表时需要设置表的中文名称和英文名称,添加字段时需要设置字段的英文名称、中文名称、字段类型、字段长度、是否必填等属性。

  对象管理

    对象来源于表,即表转化为对象。对象管理中包括对象配置、属性管理和生成代码三部分。

(1)对象配置

  

  对象管理中包含对象基本信息设置、子对象设置、父对象设置、关联对象设置、代码生成配置。

  1)  所属项目:即当前对象所属的目标项目;

  2)  对应的表:即对应的表管理中的表;

  3)  名称英文:即对象名称,在生成的代码中会用到该名称作为生成功能模板中的参数,如将该名称作为java项目中的实体类名称;

  4)  名称中文:即对象名称的中文,在生成的代码中会用到该名称作为功能模板中的参数,如将该名称作为java项目中编辑页面的标题;

  5)  主键:作为功能模板的参数,如1号生产线中根据主键删除和根据主键查询等方法对应的模板文件中使用了对象主键;

  6)  外键:作为功能模板的参数,如1号生产线中根据外键删除方法对应的模板文件中使用了对象外键属性;

  7)  对象类型:根据具体业务进行设置,如要生成当前对象的增删改查功能,则设置为单对象即可,如果模板的目标实现中包含对子表的操作则选择父对象,并设置子对象,具体的设置方式需要根据模板的要求进行设置,目前对象类型包括:单对象、父对象、子对象(一对一)、子对象(一对多)、关联对象。其中,选择父对象时需要在子对象设置中设置关联的子对象;选择子对象时需要在父对象设置中设置对应的父对象;

  (2)  子对象设置

    当目标业务或选择的功能模板中要求设置子对象时,必须在“子对象设置”中设置子对象,并设置与当前对象的关联键。当选择的功能模板中要求包含子对象时,必须设置,否则,代码生成时出错。当选择的功能模板中没有要求时,是否设置不影响代码生成。

  (3)  父对象设置

   与子对象设置类似,根据选择的功能模板要求进行设置。

  (4)  关联对象设置

   当业务间的关联关系多余两级时,需要设置关联对象,如对多对多表关系的处理。

  (5)  代码生成配置

  该部分主要设置在代码生成时除对象信息之外的作为功能模板的参数的属性,包括以下内容:

  1)   包名前缀:来源于项目管理中为项目设置的包名前缀,作为功能模板中的参数填充到生成的代码中,如java实体类的package前缀;

  2)   功能名称:作为功能模板的常用参数,如实现具体功能的模板中可以以该名称命名;

  3)   自定义参数:以json格式定义的参数,在功能模板中使用,按照功能模板的对象要求进行设置;

   功能模板选择:在生成线中选择要使用的功能模板,模板选择后对象要求将显示在对应的条目中。在实际使用中可以先进行对象配置在选择模板,这种操作方式要求对功能模板有一定的了解,否则,对象的设置可能不符合模板要求;另外,还可以先选择功能模板,根据功能模板中的对象要求对当前对象进行配置,保证对象的正确性。在生产线树中选择模板时只能选择功能模板节点,根据生产线和模板分类提示定位到符合业务要求的功能模板后进行选择。

  (6)  属性管理

   属性管理是对对象的所有属性进行设置,以满足业务要求,包括对页面显示属性设置、验证类型等设置、取值范围设置、自定义标签设置参见相关产品——自定义标签的相关说明;属性设置表单如下图所示:

    对于SSH项目而言,属性管理中需要配置当前属性是否可编辑,即在编辑页面出现;是否可查询,即作为查询条件在查询页面出现,并在后台进行相关处理的代码生成;是否可列表,即是否作为列表页面的显示内容;是否可详细,即该属性是否在查看页面显示。另外,还包括数据库类型、java类型、hibernate类型、输入框类型、界面验证类型等。其中,验证类型的配置请参考相关产品——验证框架的相关说明。

   属性管理中各属性对应的配置项设置需要根据业务规则进行设置,部分数据项如属性名称、数据库类型、最大值、最小值等从表管理中自动提取并填充,但可以任意修改,但最好与数据库保持一致,否则,生成的代码可能包含业务或数据错误,如属性的最大值设置超过了实际数据库中的最大值,那么,在生成的代码中就包含隐藏错误。

   属性管理中的部分属性的取值中包含相关产品中的内容,以下对这一部分属性进行分别介绍:

  1) 输入框:目前软工厂提供的输入框类型有常规页面组件类型和在线编辑器。其中,单选按钮组件、复选按钮组件、下拉列表组件等采用自定义标签方式,输入框取值中以workDB和workBook为前缀的选项为自定义标签输入组件。关于自定义标签的使用说明参见相关产品——自定义标签的相关文档。

  2)验证类型:目前验证类型包括常用的几种类型,在属性管理中只是对属性的验证类型进行设置,具体的验证规则由模板而定。

  3)标识码、参数值: 自定义标签中的值大多取自字典表,参数值对应字典表中的字典标识;标识码对应WorkDB或WorkBook中的取值规则,参数值作为取值规则中的参数从数据字典中取值,并封装成页面组件。

  4)逃逸值:在自定义标签中,部分项在某些情况下不显示时,设置该项对应的值为逃逸值,则在组件显示时不显示此选项。

  (7)  生成代码

   当对象配置和属性管理完成后就可以生成代码了,代码生成后跳转到代码生成结果页面,在该页面中显示源码文件名称和错误信息,如没有出现错误信息时说明生成没有出错,下载源码压缩包并解压,将解压的源码文件按照目录拷贝到开发环境中进行测试。

    实例演示(想学的朋友跟着学)

   以人员管理为例,为了简单起见,人员管理中只包含对人员信息的维护,即人员的增删查该。

  人员管理的数据库采用Access数据库,结构如下图所示:

  

   项目采用SSH框架开发,基础环境已经建立,即软工厂试用版0号生产线中的开发环境。

   操作流程

   1、在项目管理中添加将要开发的目标项目——人员管理

   

2  添加包名前缀为com.waysoft.employeeManage

3 上传人员管理的数据库设计文件(PDM)

  

4  上传成功后在表管理中出现人员表

  

5  点击“字段管理”查看字段信息(不符合业务要求的信息可以修改,如必填项、字段长度等。)

6  点击“转化对象”按钮转化对象显示无错误,在对象管理中查看转化而来的对象——人员表

  

7  点击“对象配置”

  

选择主键为:id;

对象类型为单对象;

包名前缀选择:com.waysoft.employeeManage

功能名称不用填写,根据模板的要求而定

自定义参数不同填写,根据模板要求而定

8  选择功能模板:点击“选择模板”按钮,进入生产线浏览页面

  

选择0号生产线中的单表实现模板

  9  功能模板选择成功后,根据模板的对象要求检查当前对象配置是否正确,配置正确后保存

  10 点击“属性管理”按钮,对对象的各属性进行配置

  

分别设置每个配置项的取值

设置完成后的结果如下图:

 11、设置完成后保存,属性管理设置完成

 12、对象配置和属性管理配置完成后点击“生成代码”按钮,进入代码生成结果页面

  

  13、点击“源码下载”,并保存源码压缩文件

  

14、解压后出现3个文件夹

 1) config目录下存放spring和struts配置文件

 2) java目录下存放java源码文件并按照包结构建立

 3)pages目录下存放jsp页面文件

以上目录建立和文件存放规则都在功能模板和模板文件中进行设置

 15、将生成的文件拷贝到开发环境对应的目录下

Comfig目录下的spring和struts配置文件拷贝到src目录下

Java目录下的文件夹拷贝到src目录下

Pages目录下的文件夹拷贝到pages目录下

16、代码生成完成,可以对代码进行测试和调试了

  下面我们在来说一些其他的介绍吧:

   1  首先说说她的原材料

    软工厂是以对象为原材料的工厂,在软工厂中可以定义对象的各种属性以及对象间的各种关系。在软件应用系统开发中,通常将业务模型映射成关系型数据表,每张数据表对应一个业务对象,软工厂提供一种快捷简单的业务对象构建方式,首先根据数据库设计文件(PowerDesigner),生成表结构,然后将数据表转化为对象,因此对象的构建简单方便。

   生产线

  生产线是一组由功能模板组成的集合。程序员将具有重复性的功能提炼成一个功能模板,多个功能模板组成一条完整的生产线。每个软工厂的使用者都可以自己编写属于自己的生产线,将自己多年的开发经验进行总结提炼,形成一套完整的生产线,提升工作效果,避免重复Coding。软工厂内置有0号、1号生产线,供学习使用。

  操作人员

   我们广大的程序员。

   软工厂作为一个功能模板引擎容器,适用于任何软件开发技术和开发语言,适用于任何行业领域,他面向业务的开发理念和自动编码的验证性开发模式大大提高了软件的生产效率,提升了程序员的工作效率,避免了重复性劳动,为软件企业节约开发成本,规范代码编写习惯。因此,软工厂将成为您工作的助手和朋友。

2.特性

(1) 广泛的适用性

    软工厂作为一个功能模板引擎容器,适用于任何软件开发技术和开发语言。由使用者决定生产线的组成模板,使用者可根据自身的需要编写各种功能模板。

(2) 开发快速、代码规范、提高工作效率

    软工厂根据功能模板自动生成一套完整的功能代码,使开发速度大幅度提升,减少了开发人员的工作量,降低了人力成本,同时自动生成的代码具有很好的规范性,更易于维护。

(3) 降低项目风险

  • 使用软工厂可以进行快速开发保证了项目建设的进度;
  • 软工厂生成代码的规范性保证了可测试性和可维护性及软件稳定性;
  • 验证性开发保证了业务的正确性,少走弯路;
  • 代码重建速度快,为项目重建提供了坚实的技术支撑。

(4) 业务—编码—测试贯穿始终

    使用软工厂进行开发时,每个功能模块的开发都遵循业务规则定义—代码生成—单元测试的流程,这种模式可以保证在软件建设的始终都紧密结合软件需求,从业务上保证软件的正确性。

(5) 模板可定制,一次开发多次使用

    对于一些使用频率较高的功能或者技术框架,可以定制一套模板,在以后的开发中都可以使用该模板,代码具有高度的一致性和规范性,有利于软件的测试和维护。

(6) 形成软件企业的技术核心

    软件开发属于知识密集型劳动,软件开发企业将多年积累的开发经验编制成功能模板,形成一套完成的生产线,有助于企业技术的积累和复用。

(7) 易学易用,学习成本低

(8) 免费下载、免费使用

 软工厂又增添了几条生产线,根据自己的需求建立生产线,完成开发任务,节约开发成本。

软工厂V2.0版本已经上线,欢迎大家免费使用!附带视频教学地址:http://www.tudou.com/programs/view/tAkuLYrXxOw/

  

原文地址:https://www.cnblogs.com/softfactory/p/software.html