一种代码的自动生成方法、系统、设备及介质技术方案

技术编号:35065739 阅读:21 留言:0更新日期:2022-09-28 11:23
本发明专利技术公开了一种代码的自动生成方法、系统、设备及介质,方法包括:确定目标代码,并基于目标代码编写解析器与构建器,其中,目标代码包括目标对象;读取待解析文本,并校验待解析文本是否正确;响应于待解析文本正确,调用解析器以将待解析文件转换为Map对象;调用构建器以根据Map对象创建目录以及生成对应的目标对象,并将对应的目标对象存入目录中。通过本发明专利技术的方案,实现了目标代码的自动生成,简化了目标代码开发过程,提高了目标代码开发效率,同时由于使用构建器实现所有方法的统一构建,保证了代码的规则一致性,降低了后期代码维护成本。维护成本。维护成本。

【技术实现步骤摘要】
一种代码的自动生成方法、系统、设备及介质


[0001]本专利技术涉及代码开发
,尤其涉及一种代码的自动生成方法、系统、设备及介质。

技术介绍

[0002]前后端分离的开发方式由于具有适用多端显示、开发职责清晰等优点已经成为当前最流行的服务端/客户端开发方式。RESTful API是当前前后端分离的最佳实践方式,Spring Boot作为Java Web开发中最常用的框架,完全支持RESTful风格的API接口开发。当前Spring Boot的RESTful开发中,通常都是先编写完Controller、Service、POJO对象后再为每个方法指定具体的RESTful请求路径,这种方式存在大量的重复工作,比较耗费时间,而且也存在较大的错误风险,并且团队开发中不同人编写的请求方法命名规则不同,也不方便后期维护。

技术实现思路

[0003]有鉴于此,本专利技术提出了一种代码的自动生成方法、系统、设备及介质,实现了RESTful API文本文件自动生成Spring Boot代码,极大提高开发者的开发效率,减少错误风险,同时这种方式可以生成统一的代码规范,也方便开发者后期的代码维护,降低维护成本。
[0004]基于上述目的,本专利技术实施例的一方面提供了一种代码的自动生成方法,具体包括如下步骤:
[0005]确定目标代码,并基于所述目标代码编写解析器与构建器,其中,所述目标代码包括目标对象;
[0006]读取待解析文本,并校验所述待解析文本是否正确;
[0007]响应于所述待解析文本正确,调用所述解析器以将所述待解析文件转换为Map对象;
[0008]调用所述构建器以根据所述Map对象创建目录以及生成对应的目标对象,并将所述对应的目标对象存入所述目录中。
[0009]在一些实施方式中,所述目标代码为Spring Boot代码,所述目标对象包括Controller对象、Service对象以及POJO对象,所述待解析文本为Restful API文本。
[0010]在一些实施方式中,调用所述解析器以将所述待解析文件转换为Map对象,包括:
[0011]调用解析器,并基于所述解析器执行以下步骤:
[0012]解析所述Restful API文本中的第一变量、第二变量、第三变量和第四变量,并将所述第一变量、所述第二变量、所述第三变量和所述第四变量放置到所述Map对象中,其中,所述第一变量用于表示解析结果要存放的路径,所述第二变量用于表示解析结果文件存放的所在包路径,所述第三变量用于表示所述Controller对象访问结果的返回值,所述第四变量用于表示解析URL的路径部分时需要忽略的部分;
[0013]解析所述Restful API文本中的请求块,并基于所述请求块依次确定POJO对象、Controller对象、Service对象的属性以放置到所述Map对象中,其中,所述POJO对象的属性包括POJO对象的属性名及其Java值类型,所述Controller对象的属性包括Controller对象的名称、方法名、方法映射路径、方法参数以及Controller对象中方法与所述Service对象方法的调用关系,所述Service对象的属性包括Service对象的名称、方法名、方法参数列表、返回值。
[0014]在一些实施方式中,调用构建器以根据所述Map对象创建目录,并生成对应的目标对象存入对应的目录中,包括:
[0015]调用构建器,并基于所述构建器执行以下步骤:
[0016]从所述Map对象中读取所述第一变量和所述第二变量,并基于所述第一变量和所述第二变量创建目录;
[0017]从所述Map对象中读取第三变量,基于所述第三变量创建R对象以及所述R对象对应的Java文件,并将所述R对象以及所述R对象对应的Java文件放入所述目录下;
[0018]分别从所述Map对象中读取POJO对象、Service对象、Controller对象的属性值以依次创建所述POJO对象、所述Service对象、所述Controller对象及所述POJO对象、所述Service对象、所述Controller对象对应的Java文件,并将所述POJO对象、所述Service对象、所述Controller对象及所述POJO对象、所述Service对象、所述Controller对象对应的Java文件放入所述目录下。
[0019]在一些实施方式中,方法进一步包括:
[0020]从所述Map对象中读取第四变量,基于所述第四变量确定所述POJO对象的请求路径前缀。
[0021]在一些实施方式中,分别从所述Map对象中读取POJO对象、Service对象、Controller对象的属性值以依次创建所述POJO对象、所述Service对象、所述Controller对象及所述POJO对象、所述Service对象、所述Controller对象对应的Java文件,包括:
[0022]读取POJO对象的属性值,基于所述POJO对象的属性值创建POJO对象并写到对应的Java文件中;
[0023]读取Service对象的属性值,基于所述Service对象的属性值创建Service对象及方法并写到对应的Java文件中;
[0024]读取Controller对象的属性值,基于所述Controller对象的属性值创建Controller对象及方法,并在Controller方法中调用指定的Service方法,并写到对应的Java文件中。
[0025]在一些实施方式中,响应于所述待解析文本正确,调用所述解析器以将所述待解析文件转换为Map对象,包括:
[0026]以行为单位读取待解析文本,并按预设条件对所述待解析文件进行解析处理以逐行将所述待解析文本转换为所述Map对象。
[0027]本专利技术实施例的另一方面,还提供了一种代码的自动生成系统,包括:
[0028]编写模块,所述编写模块配置为确定目标代码,并基于所述目标代码编写解析器与构建器,所述目标代码包括目标对象;
[0029]校验模块,所述校验模块配置为读取待解析文本,并校验所述待解析文本是否正
确;
[0030]转换模块,所述转换模块配置为响应于所述待解析文本正确,调用所述解析器以将所述待解析文件转换为Map对象;
[0031]生成模块,所述生成模块配置为调用所述构建器以根据所述Map对象创建目录以及生成对应的目标对象,并将所述对应的目标对象存入所述目录中。
[0032]本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
[0033]本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
[0034]本专利技术至少具有以下有益技术效本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码的自动生成方法,其特征在于,包括:确定目标代码,并基于所述目标代码编写解析器与构建器,其中,所述目标代码包括目标对象;读取待解析文本,并校验所述待解析文本是否正确;响应于所述待解析文本正确,调用所述解析器以将所述待解析文件转换为Map对象;调用所述构建器以根据所述Map对象创建目录以及生成对应的目标对象,并将所述对应的目标对象存入所述目录中。2.根据权利要求1所述的方法,其特征在于,所述目标代码为Spring Boot代码,所述目标对象包括Controller对象、Service对象以及POJO对象,所述待解析文本为Restful API文本。3.根据权利要求2所述的方法,其特征在于,调用所述解析器以将所述待解析文件转换为Map对象,包括:调用解析器,并基于所述解析器执行以下步骤:解析所述Restful API文本中的第一变量、第二变量、第三变量和第四变量,并将所述第一变量、所述第二变量、所述第三变量和所述第四变量放置到所述Map对象中,其中,所述第一变量用于表示解析结果要存放的路径,所述第二变量用于表示解析结果文件存放的所在包路径,所述第三变量用于表示所述Controller对象访问结果的返回值,所述第四变量用于表示解析URL的路径部分时需要忽略的部分;解析所述Restful API文本中的请求块,并基于所述请求块依次确定POJO对象、Controller对象、Service对象的属性以放置到所述Map对象中,其中,所述POJO对象的属性包括POJO对象的属性名及其Java值类型,所述Controller对象的属性包括Controller对象的名称、方法名、方法映射路径、方法参数以及Controller对象中方法与所述Service对象方法的调用关系,所述Service对象的属性包括Service对象的名称、方法名、方法参数列表、返回值。4.根据权利要求3所述的方法,其特征在于,调用构建器以根据所述Map对象创建目录,并生成对应的目标对象存入对应的目录中,包括:调用构建器,并基于所述构建器执行以下步骤:从所述Map对象中读取所述第一变量和所述第二变量,并基于所述第一变量和所述第二变量创建目录;从所述Map对象中读取第三变量,基于所述第三变量创建R对象以及所述R对象对应的Java文件,并将所述R对象以及所述R对象对应的Java文件放入所述目录下;分别从所述Map对象中读取POJO对象、Service对象、Controller对象的属性值以依次创建所述POJO对象、所述Service对象、所述Controller对象及所述POJO对象、所...

【专利技术属性】
技术研发人员:周兴国刘超
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1