本发明涉及计算机开发领域,具体涉及一种基础功能代码生成系统及方法。
背景技术:
1、由于我国当前的软件开发大都还是通过程序员手工编码来实现的。但每个大型系统中都有很多基础的、标准的功能,需要程序员花大量的时间和精力去编写一些重复的、繁琐的基础功能的开发上,没有办法把精力和时间集中在复杂的、有创造性的软件功能的开发上,这无疑是对资源的一种浪费。
2、因此,有必要研究和开发出稳定的、快速的、可重复使用的、质量有保障的基础代码生成系统,使软件开发人员能够将更多的精力放在复杂的、核心、有创造性的功能上,系统直接生成前后端代码,代码可直接运行,简化基础功能的开发流程,大大减少了基础功能的开发和测试工作量;并较大程度的减少项目工期。
技术实现思路
1、针对现有技术中的上述不足,本发明提供的一种基础功能代码生成系统及方法解决了繁琐的基础功能重复开发导致的时间浪费的问题。
2、为了达到上述发明目的,本发明采用的技术方案为:一种基础功能代码生成系统,包括数据模块、装配模块、策略模块、后端模版引擎模块、json生成模块、json解析模块、表格处理模块、表单处理模块和前端模版引擎模块;
3、所述数据模块用于读取和解析数据库中的信息,并将解析后的信息写入装配模块;
4、所述装配模块用于存放和组织各类配置和信息,并将组织后的各类配置和信息分别传输给策略模块和json生成模块;
5、所述策略模块用于根据装配模块传输来的配置和信息控制后端模版引擎模块进行后端文件输出;
6、所述后端模版引擎模块用于根据策略模块的控制格式化输出后端文件;
7、其中,后端文件包括实体文件、dao参数、mapper文件和xml文件;
8、所述json生成模块根据装配模块传输来的配置和信息生成固定格式的json文件;
9、所述json解析模块用于解析后端生成的固定格式的json文件;
10、所述表格处理模块用于根据json解析模块的输出处理表格配置并传输至前端模版引擎模块;
11、所述表单处理模块用于根据json解析模块的输出处理表单配置并传输至前端模版引擎模块;
12、所述前端模版引擎模块用于根据处理好的表格配置和处理好的表单配置格式化输出前端文件。
13、本发明还提供了一种基础功能代码生成方法,包括以下步骤:
14、s1、读取配置的数据库信息,解析其中的信息,根据属性名称与数据库中读取的信息进行合并,并增加信息后写入装配模块;
15、s2、通过后端读取装配模块中存储的信息,生成固定格式的json配置文件;
16、s3、通过json解析模块解析固定格式的json配置文件,生成前端文件,完成基础功能的代码生成。
17、进一步地:所述步骤s1包括以下分步骤:
18、s11、读取配置的数据库信息,建立数据连接并读取数据库中数据表的数据信息,解析其中的属性基础信息;
19、所述属性基础信息包括名称、类型、长度、小数位数、是否允许为空,是否唯一和备注信息;
20、s12、根据属性的名称与数据库中读取的对应字段信息进行合并,向数据信息中增加属性配置信息、属性校验信息和接口配置信息后统一写入装配模块。
21、进一步地:所述步骤s2包括以下分步骤:
22、s21、读取装配模块的属性基础信息,将数据库类型转化为java变量类型,将数据库属性名转java变量名,并将转换后的java变量类型和java变量名传入策略模块加载对应的模板,生成基础文件;
23、s22、读取装配模块中的属性配置信息,将其转化为配置参数转入后端模板引擎模块后,依次载入listvo,detailvo,querydto,insertdto和editdto模板,依次生成对应的配置文件;
24、s23、读取装配模块中的属性校验信息载入业务处理模板,生成数据校验规则;
25、s24、读取装配模块中的接口配置信息,生成对外访问的接口文件;
26、s25、读取基础文件、配置文件、数据校验规则以及对外访问的接口文件,生成固定格式的json文件。
27、进一步地:所述步骤s21包括以下分步骤:
28、s211、读取装配模块的属性基础信息,将数据库类型转化为java变量类型,将数据库属性名转java变量名,并将转换后的java变量类型和java变量名传入策略模块;
29、s212、通过策略模块检查所有字段是否都是基础信息字段:
30、若存在枚举字段,则优先创建枚举类对象,并引用该类型;
31、若存在字典类型字段,则优先创建数据字典数据,并引入数据字典转化类型;
32、s213、遍历所有字段,使用后端模板引擎模块载入实体模板,生成实体类文件;
33、s214、读取装配模块中的dao信息,将其转化为dao参数转入后端模板引擎模块后,分别载入dao模板和xml模板,生成mapper文件和xml文件,并将mapper文件和xml文件作为基础文件。
34、进一步地:所述步骤s25包括以下分步骤:
35、s251、读取数据校验规则,根据校验规则生成对应的校验正则表达式;
36、s252、汇总单个数据表中每个字段的名称、类型、长度、是否必需、是否可新增、是否可编辑、是否可在列表中展示、是否可在详情中展示和数据来源作为数据字段类型,并根据数据字段类型生成对应的展示组件;
37、s253、根据分析基础文件、配置文件、数据校验规则、对外访问的接口文件和对应的展示组件生成固定格式的json文件。
38、进一步地:所述步骤s3包括以下分步骤:
39、s31、通过json解析模块解析固定格式的json配置文件,得到表格展示信息、表单展示信息和接口配置信息;
40、其中,表单展示信息包括对应的接口、枚举和数据字典信息、校验规则信息以及筛选条件信息;
41、所述校验规则信息根据校验规则对应的校验正则表达式生成;
42、s32、通过前端表格处理模块读取表格展示信息,加载对应的展示样式和展示组件,并将对应的展示样式和展示组件转化为表格参数传递给前端模板引擎模块生成前端表格页面;
43、s33、通过前端表单处理模块读取表单展示信息,生成前端表单页面;
44、s34、通过前段模板引擎模块读取接口配置信息,生成前端访问菜单及入口页面;
45、s35、将前端表格页面、前端表单页面和前端访问菜单及入口页面作为前端文件,完成基础功能的代码生成。
46、进一步地:所述步骤s33包括以下分步骤:
47、s331、通过前端表单处理模块读取表单展示信息,根据表单展示信息中对应的接口、枚举和数据字典信息生成对应的数据源以及转换展示方式;
48、s332、根据表单展示信息中的校验规则信息,将对应的正则式写入对应字段控件的校验规则中;
49、s333、根据表单展示信息中的筛选条件信息,根据字段是否可筛选,以及筛选规则生成表单的筛选条件;
50、s334、将对应的数据源以及转换展示方式、对应字段控件的校验规则和表单的筛选条件传递给前端模板引擎模块,并生成前端表单页面。
51、本发明的有益效果为:
52、1.系统直接生成前后端代码,代码可直接运行,简化基础功能的开发流程,大大减少了基础功能的开发和测试工作量;并较大程度的减少项目工期;
53、2.代码由系统统一生成的,经过严格的测试和优化后,其代码质量可能得到较高的保证;
54、3.减少因为人员素质和能力不同,造成类似软件功能能开发代码差异较大的问题,对软件代码规范的实施也具有非常重要的意义。