CN114385175A - 一种代码生成方法、装置、电子设备及存储介质 - Google Patents
一种代码生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114385175A CN114385175A CN202011127652.3A CN202011127652A CN114385175A CN 114385175 A CN114385175 A CN 114385175A CN 202011127652 A CN202011127652 A CN 202011127652A CN 114385175 A CN114385175 A CN 114385175A
- Authority
- CN
- China
- Prior art keywords
- information
- configuration
- code
- database
- generator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006870 function Effects 0.000 claims description 89
- 238000010276 construction Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 241000282836 Camelus dromedarius Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种代码生成方法、装置、电子设备及存储介质。该方法包括:获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、及与触发事件对应的已有代码的模板信息;对信息配置对象中的配置信息、数据库配置对象中数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置;将各配置结果和模板信息赋值给初始生成器对象,得到已构建完成的自动生成器对象;在监测到代码生成的触发事件时,获取与触发事件对应的自动生成器对象,调用自动生成器对象中的代码生成函数;根据代码生成函数的输出结果,得到与触发事件相应的目标代码。本发明实施例的技术方案,可以提高代码的开发效率。
Description
技术领域
本发明实施例涉及计算机应用领域,尤其涉及一种代码生成方法、装置、电子设备及存储介质。
背景技术
传统方案中很多的相似代码都是通过开发人员一一手动编写生成,显然,这种代码生成方案会占用大量的研发工时开销,代码开发效率低下。
发明内容
本发明实施例提供了一种代码生成方法、装置、电子设备及存储介质,以实现代码自动生成的效果。
第一方面,本发明实施例提供了一种代码生成方法,可以包括:
在监测到代码生成的触发事件时,获取与触发事件对应的已构建完成的自动生成器对象,调用自动生成器对象中的代码生成函数;
根据代码生成函数的输出结果,得到与触发事件相应的目标代码;
其中,自动生成器对象通过如下步骤预先构建完成:
获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息;
对信息配置对象中的配置信息、数据库配置对象中数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置;
将各配置结果和模板信息赋值给初始生成器对象,得到自动生成器对象,其中,代码生成函数是根据自动生成器对象中的各赋值结果实现代码生成功能。
可选的,对信息配置对象中的配置信息进行配置,可以包括:
将代码输出路径信息、代码文件创建者信息和/或服务器命名信息分别配置到信息配置对象中相应的配置信息变量中;和/或,
将类设置信息、语言设置信息、语言注解设置信息和/或结构设置信息分别配置到信息配置对象中相应的配置信息变量中,其中类设置信息包括代码文件是open的类、语言设置信息包括支持生成kotlin语言、语言注解设置信息包括支持Swagger2语言注解、和/或结构设置信息包括生成BaseResulMap结构以及BaseColumnList结构;
相应的,将各配置结果赋值给初始生成器对象,可包括:将配置后的信息配置对象赋值到初始生成器对象中的globalConfig变量中。
可选的,对数据库配置对象中的数据连接信息进行配置,可以包括:
将数据路径信息、数据库户名和/或数据库密码分别配置到数据库配置对象中相应的数据连接信息变量中,其中数据路径信息包括数据库域名、数据库名称和/或数据库端口;
相应的,将各配置结果赋值给初始生成器对象,包括:将配置后的数据库配置对象赋值到初始生成器对象中的dataSource变量中。
可选的,对包配置对象中的包名信息进行配置,可以包括:
将包名信息配置到包配置对象中相应的包名信息变量中,其中,包名信息是目标代码所在的代码文件的路径信息;
相应的,将各配置结果赋值给初始生成器对象,包括:将配置后的包配置对象赋值到初始生成器对象中的PackageInfo变量中。
可选的,对策略对象中的策略信息进行配置,可以包括:
将代码文件和数据库列表的命名规则由下划线转化为驼峰,并将转化结果分别配置到策略对象中相应的配置信息变量中;和/或,
将类支持信息配置到策略对象中相应的配置信息变量中,其中,类支持信息包括实体类不支持Lombok格式;和/或,
将已生效列表信息配置到策略对象中相应的配置信息变量中;
相应的,将各配置结果赋值给初始生成器对象,包括:将配置后的策略对象赋值到初始生成器对象中的strategy变量中。
可选的,获取与触发事件对应的已构建完成的自动生成器对象,可以包括:
获取与触发事件对应的已有代码,从各候选信息中筛选出与已有代码相关联的模板信息,并根据模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。
可选的,代码生成函数可以通过如下步骤实现代码生成功能:
根据自动生成器对象中的dataSource变量与待访问数据库进行连接;
根据自动生成器对象中的各赋值结果,将从待访问数据库的待访问列表中获取到的字段信息生成待访问数据库的实体类;
根据实体类和模板信息生成目标代码,并根据自动生成器对象中的PackageInfo变量对目标代码进行输出。
第二方面,本发明实施例还提供了一种代码生成装置,该装置可以包括:
函数调用模块,用于在监测到代码生成的触发事件时,获取触发事件对应的已构建完成的自动生成器对象,调用自动生成器对象中的代码生成函数;
代码生成模块,用于根据代码生成函数的输出结果,得到与触发事件相应的目标代码;其中,自动生成器对象通过如下模块预先构建完成:
信息获取模块,用于获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息;信息配置模块,用于对信息配置对象中的配置信息、数据库配置对象中数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置;对象构建模块,用于将各配置结果和模板信息赋值给初始生成器对象,得到自动生成器对象,其中,代码生成函数是根据自动生成器对象中的各赋值结果实现代码生成功能。
第三方面,本发明实施例还提供了一种电子设备,该电子设备可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的代码生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的代码生成方法。
本发明实施例的技术方案,通过对获取到的信息配置对象中的配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置,并将配置结果和获取到的模板信息赋值给初始生成器对象,由此可以得到已构建完成的自动生成器对象,该自动生成器对象可以与至少一个开发人员已经开发出来的已有代码相对应;在此基础上,监测到代码生成的触发事件时,可以获取到与该触发事件对应的自动生成器对象,此时可通过调用自动生成器对象中的代码生成函数生成与触发事件对应的目标代码。上述技术方案,基于与待生成的目标代码相对应的自动生成器对象,可以自动生成与开发人员已经开发出来的已有代码较为相似的目标代码,由此通过降低冗余代码的开发时间的方式,达到了提高代码的开发效率的效果。
附图说明
图1是本发明实施例一中的一种代码生成方法的流程图;
图2是本发明实施例二中的一种代码生成方法的流程图;
图3是本发明实施例三中的一种代码生成方法的流程图;
图4是本发明实施例四中的一种代码生成装置的结构框图;
图5是本发明实施例五中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明实施例之前,先对本发明实施例的应用场景进行示例性说明:在实际应用中,可选的,可以先定义一个类来处理代码生成功能,该类的具体定义可以如下所述:Class myCodeGen{},然后在该类中可以定义一些在后续的代码生成过程中可能涉及到的常量信息,该常量信息的定义及含义可如下所述:
接下来可以定义一个main函数来处理代码生成任务,在该main函数中可执行自动生成器对象的构建过程和代码生成过程,该main函数的定义如下所述:
@JvmStatic
fun main(args:Array<String>){}
实施例一
图1是本发明实施例一中提供的一种代码生成方法的流程图。本实施例可适用于基于已构建完成的自动生成器对象自动生成与已有代码较为相似的目标代码的情况。该方法可以由本发明实施例提供的代码生成装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该电子设备可以是各种用户终端或服务器。
参见图1,本发明实施例的方法具体包括如下步骤:
S110、获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息,其中,该触发事件是监测到的用于实现代码生成的事件。
其中,初始构建得到的对象可以是初始构建完成且待进行信息配置的对象,示例性的,在上述main函数中可以通过val autoGenerator=AutoGenerator()函数自动构建一个全局的且待进行信息配置的初始生成器对象;通过调用val gc=GlobalConfig()函数来构建一个全局的信息配置对象gc;在完成上述全局配置后,通过调用val dsc=DataSourceConfig()函数构建一个数据库配置对象dsc;通过val pc=PackageConfig()函数来构建一个包配置对象pc;在此基础上,可选的,还可以构建一些自定义配置对象,如通过调用val injectionConfig=object:InjectionConfig(){override fun initMap(){}}函数构建一个injectionConfig对象,再如通过调用val focList=mutableListOf<FileOutConfig>()函数来构建一个focList对象,这两个对象中可以存储一些描述信息,比如缩进时的空格数量、通用的基本规则等等;通过调用val strategy=StrategyConfig()函数来生成一个策略对象strategy;等等。
针对开发人员开发出的多个已有代码,各已有代码可以分别对应于不同的模板信息,该模板信息中可以存储有与该已有代码相应的通用规则,如Mapper数据是否存在某某函数。当然,若两个或是两个以上的已有代码较为相似,它们可以对应于同一模板信息。因此,当监测到代码生成的触发事件时,根据该触发事件可以确定出待生成的目标代码是以哪个已有代码为基准生成的代码,进而可以获取到与该已有代码关联的模板信息。
S120、对信息配置对象中的配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置。
其中,对各对象进行信息配置的实现方式有多种,示例性的,对信息配置对象中的配置信息进行配置的实现方式可以包括:将代码输出路径信息、代码文件创建者信息和/或服务器命名信息分别配置到信息配置对象中相应的配置信息变量中;和/或,将类设置信息、语言设置信息、语言注解设置信息和/或结构设置信息分别配置到信息配置对象中相应的配置信息变量中,其中类设置信息包括代码文件是open的类、语言设置信息包括支持生成kotlin语言、语言注解设置信息包括支持Swagger2语言注解、和/或结构设置信息包括生成BaseResulMap结构以及BaseColumnList结构。
示例性的,对数据库配置对象中的数据连接信息进行配置的实现方式可以包括:将数据路径信息、数据库户名和/或数据库密码分别配置到数据库配置对象中相应的数据连接信息变量中,该数据路径信息包括数据库域名、数据库名称和/或数据库端口,且数据库域名、数据库名称、数据库端口、数据库户名和数据库密码均可以是上文中定义的常量信息。
示例性的,对包配置对象中的包名信息进行配置的实现方式可以包括:将包名信息配置到该包配置对象中相应的包名信息变量中。需要说明的是,由于自动生成的目标代码可以存储于代码文件中,该代码文件的路径信息可以通过包配置对象中的包名信息进行表示,这意味着若想找到某代码文件,需先知道该代码文件在哪个包下。
示例性的,对focList对象进行信息配置可以生成Mapper数据的路径信息,该Mapper数据可以是用于对待访问数据库进行访问的中间文件,根据中间文件的路径信息可以找到该中间文件,以便根据该中间文件连接到待访问数据库上。
再示例性的,对策略对象中的策略信息进行配置的实现方式可以包括:将代码文件和数据库列表的命名规则由下划线转化为驼峰,并将转化结果分别配置到策略对象中相应的配置信息变量中;和/或,将类支持信息配置到策略对象中相应的配置信息变量中,其中,类支持信息包括实体类不支持Lombok格式;和/或,将已生效列表信息配置到策略对象中相应的配置信息变量中。
S130、将各配置结果和模板信息赋值给初始生成器对象,得到已构建完成的自动生成器对象。
其中,将各配置结果赋值给初始生成器对象的实现方式可以包括将配置后的信息配置对象赋值到初始生成器对象中的globalConfig变量中;将配置后的数据库配置对象赋值到初始生成器对象中的dataSource变量中;将配置后的包配置对象赋值到初始生成器对象中的PackageInfo变量中;将配置后的focList对象赋值给injectionConfig对象,再将赋值后的injectionConfig对象赋值到初始生成器对象中的cfg变量中;配置后的策略对象赋值到初始生成器对象中的strategy变量中;通过调用autoGenerator.templateEngine=FreemarkerTemplateEngine()函数来将模板信息赋值到初始生成器对象中的templateEngine变量中;等等,在此未做具体限定。据此,可以将赋值后的初始生成器对象作为已构建完成的自动生成器对象。
需要说明的是,该自动生成器对象的数量可以是一个、两个或是多个,每个自动生成对象可以与至少一个已有代码相对应,示例性的,如果已有代码A和已有代码B间的差异性较小,二者可以对应于同一自动生成器对象;否则,二者可以对应于不同的自动生成器对象。
S140、在监测到代码生成的触发事件时,获取与触发事件对应的自动生成器对象,并调用自动生成器对象中的代码生成函数,以使该代码生成函数根据自动生成器对象中的各赋值结果实现代码生成功能。
其中,该触发事件可以是用于自动生成与某已有代码较为相似的目标代码的事件,由于不同的已有代码对应的自动生成器对象可能不是同一自动生成器对象,因此在监测到触发事件时,先获取与该触发事件对应的自动生成器对象。进一步,可以调用该自动生成器对象中的代码生成函数,以使该代码生成函数根据该自动生成器对象中的各赋值结果实现代码生成功能。示例性的,进而可通过调用autoGenerator.execute()函数来执行代码生成功能,最终可生成与上述各种配置相应的目标代码,这样的目标代码可以称为模板代码。
S150、根据代码生成函数的输出结果,得到与触发事件相应的目标代码。
本发明实施例的技术方案,通过对获取到的信息配置对象中的配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置,并将配置结果和获取到的模板信息赋值给初始生成器对象,由此可以得到已构建完成的自动生成器对象,该自动生成器对象可以与至少一个开发人员已经开发出来的已有代码相对应;在此基础上,监测到代码生成的触发事件时,可以获取到与该触发事件对应的自动生成器对象,此时可通过调用自动生成器对象中的代码生成函数生成与触发事件对应的目标代码。上述技术方案,基于与待生成的目标代码相对应的自动生成器对象,可以自动生成与开发人员已经开发出来的已有代码较为相似的目标代码,由此通过降低冗余代码的开发时间的方式,达到了提高代码的开发效率的效果。
实施例二
图2是本发明实施例二中提供的一种代码生成方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,获取与触发事件对应的已构建完成的自动生成器对象,具体可包括:获取与触发事件对应的已有代码,从各候选信息中筛选出与已有代码相关联的模板信息,并根据模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例的方法具体可以包括如下步骤:
S210、获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息,其中,该触发事件是监测到的用于实现代码生成的事件。
S220、对信息配置对象中的配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置。
S230、将各配置结果和模板信息赋值给初始生成器对象,得到已构建完成的自动生成器对象。
S240、在监测到代码生成的触发事件时,获取与触发事件对应的已有代码,从各候选信息中筛选出与已有代码相关联的模板信息,并根据模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。
其中,针对开发人员开发出的多个已有代码,各已有代码可以分别对应于不同的模板信息,该模板信息中可以存储有与该已有代码相应的通用规则,如Mapper数据是否存在某某函数。当然,若两个或两个以上的已有代码较为相似,它们可以对应于同一模板信息。因此,在监测到代码生成的触发事件时,根据该触发事件可以确定待生成的目标代码是以哪个已有代码为基准生成的代码,进而可以从各候选信息中筛选出与该已有代码关联的模板信息,该各候选信息是与不同的已有代码关联的模板信息。进一步的,由于各候选生成器对象是与不同的模板信息关联的自动生成器对象,这是因为每个自动生成器对象的构建过程中都涉及到某一模板信息,因此可以根据模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。
S250、调用自动生成器对象中的代码生成函数,以使该代码生成函数根据自动生成器对象中的各赋值结果实现代码生成功能,根据代码生成函数的输出结果,得到与触发事件相应的目标代码。
本发明实施例的技术方案,在监测到代码生成的触发事件时,可以获取与该触发事件对应的已有代码,以便根据该已有代码从各候选信息中筛选出模板信息,后续根据该模板信息可以从已构建完成的各候选生成器对象中准确筛选出与该触发事件对应的自动生成器对象。
实施例三
图3是本发明实施例三中提供的一种代码生成方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,代码生成函数通过如下步骤实现代码生成功能:根据自动生成器对象中的dataSource变量与待访问数据库进行连接;根据自动生成器对象中的各赋值结果,将从待访问数据库的待访问列表中获取到的字段信息生成待访问数据库的实体类;根据实体类和模板信息生成目标代码,并根据自动生成器对象中的PackageInfo变量对目标代码进行输出。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例的方法具体可以包括如下步骤:
S310、获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息,其中,该触发事件是监测到的用于实现代码生成的事件。
S320、对信息配置对象中的配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置。
S330、将各配置结果和模板信息赋值给初始生成器对象,得到已构建完成的自动生成器对象。
S340、在监测到代码生成的触发事件时,获取与触发事件对应的自动生成器对象,并调用自动生成器对象中的代码生成函数,以使该代码生成函数根据自动生成器对象中的dataSource变量与待访问数据库进行连接;根据自动生成器对象中的各赋值结果,将从待访问数据库的待访问列表中获取到的字段信息生成待访问数据库的实体类;根据实体类和模板信息生成目标代码,并根据自动生成器对象中的PackageInfo变量对目标代码进行输出。
其中,若想生成对待访问数据库进行访问的目标代码,需先生成该待访问数据库的实体类,因此,考虑到自动生成器对象中的dataSource变量包括与待访问数据库相关的各种数据连接信息,例如数据库域名、数据库名称、数据库端口、数据库户名、数据库密码等,因此根据该dataSource变量可以与待访问数据库进行连接。进而,由于自动生成器对象中各赋值结果已定义与对待访问数据库进行访问时的代码的相关内容,且待访问数据库中包括多张待访问列表,因此根据该各赋值结果可以从待访问数据库的待访问列表中获取到字段信息,并根据该字段信息可以生成与待访问数据库的实体类相关的实体类,由此根据该实体类和模板信息可以生成目标代码。进一步,由于自动生成器对象中的PackageInfo变量中定义了目标代码所在的代码文件的路径信息,因此根据该PackageInfo变量可以对目标代码进行输出。
S350、根据代码生成函数的输出结果,得到与触发事件相应的目标代码。
本发明实施例的技术方案,代码生成函数根据自动生成器对象中的dataSource变量与待访问数据库进行连接,该dataSource变量中存储有该待访问数据库的域名、名称、端口、户名和/或密码;进而,由于自动生成器对象中的各赋值结果中涉及到与类、语言、结构、包、代码文件和/或数据库列表,因此根据各赋值结果可以将从待访问数据库的待访问列表中获取到的字段信息生成待访问数据库的实体类,该实体类是生成与对待访问数据库进行访问的代码的必要手段之一;进一步,由于模板信息中存储有与待生成的目标代码较为相似的已有代码关联的通用规则,因此根据实体类和模板信息可以生成与已有代码较为相似的目标代码,并根据自动生成器对象中PackageInfo变量中的包名信息对目标代码进行输出,达到了自动生成与已有代码较为相似的目标代码的效果。
为了更好地理解上述步骤的具体实现过程,下面继续以上文阐述的示例性说明为例,对本实施例的代码生成方法进行示例性的说明。示例性的,该main函数中的具体内容如下所示:
首先通过调用val autoGenerator=AutoGenerator()函数构建一个全局的自动生成器对象。然后通过调用val gc=GlobalConfig()函数来构建一个全局的信息配置对象gc,接下来对gc对象进行配置信息的配置,该配置信息如下所述:
//配置代码输出路径信息
gc.outputDir=OUT_PUT_DIR
//配置代码件创建者信息
gc.author="microzhang"
//配置代码文件是一个open的类
gc.isOpen=true
//配置支持生成kotlin语言
gc.isKotlin=true
//配置支持Swagger2语言注解
gc.isSwagger2=true
//配置生成BaseResulMap结构
gc.isBaseResultMap=true
//配置生成BaseColumnList结构
gc.isBaseColumnList=true
//配置Service命名信息
gc.serviceName="%sService"
接下来通过调用autoGenerator.globalConfig=gc函数来将gc对象赋值给autoGenerator对象中的globalConfig变量,这样autoGenerator就具备了全局的配置信息。
在此基础上,接下来配置对应的数据连接信息,该数据连接信息的配置过程可以是:首先通过调用val dsc=DataSourceConfig()函数来构建一个数据源配置对象dsc,然后通过调用dsc.url=
"jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull"函数配置dsc对象中的数据路径信息url,其中DB_HOST、DB_PORT、DB_NAME都是上述示例性说明中定义的常量信息,这些常量信息采用Unicode编码,字符编码采用UTF-8,开启jdbc中的rewriteBatchedStatements参数配置和autoReconnect参数配置,failOverReadOnly表示在数据库异常后进行自动重连,且在自动重连成功后并不设置为只读,在orm层配置增加zeroDateTimeBehavior=convertToNull以使代码层面无需任何改动。接下来通过调用dsc.username=DB_USER来配置数据库户名(即,数据连接的用户名),通过调用dsc.password=DB_PASSWORD来配置数据库密码(即,数据连接的密码)。最后通过调用autoGenerator.dataSource=dsc函数来将dsc对象赋值给autoGenerator对象中的dataSource字段,这样就将完整的数据连接配置赋值到了autoGenerator对象中。
接下来进行目标代码的包名信息的配置,具体配置过程如下所示:通过val pc=PackageConfig()函数来生成一个包配置对象pc,然后通过调用pc.parent=PACKAGE_NAME函数来配置pc对象的包名信息,然后通过调用autoGenerator.packageInfo=pc函数来将pc对象赋值给autoGenerator对象中的packageInfo字段。
接下来进行自定义配置对象的相关信息的配置,具体的配置逻辑如下所述:
函数来配置生成的Mapper数据的路径信息,Mapper数据可以是用于对待访问数据库进行访问的中间文件,根据该中间文件的路径信息可以找到该中间文件,以便根据该中间文件连接到待访问数据库上,并对该待访问数据库进行访问。具体的,通过focList对象中的add函数进行路径信息的配置,该add函数通过override fun outputFile以实现路径信息的自定义输入,本实施例中,该路径信息为gc.outputDir}/mapper/${tableInfo?.entityName}Mapper${StringPool.DOT_XML。然后通过调用injectionConfig.fileOutConfigList=focList函数来将focList对象赋值给injectionConfig.fileOutConfigList中,最后通过调用autoGenerator.cfg=injectionConfig函数来将injectionConfig对象赋值到autoGenerator的cfg变量中。
最后还需要配置生成策略,具体的策略配置逻辑如下所述:通过调用valstrategy=StrategyConfig()函数来构建一个策略对象strategy,然后通过调用strategy.naming=NamingStrategy.underline_to_camel配置代码文件的命名规则将下划线转化成驼峰命名规则。同理,配置strategy.columnNaming=NamingStrategy.underline_to_camel将数据库列表的命名规则也配置成此规则。然后通过调用strategy.isEntityLombokModel=false来表明实体类不支持Lombok格式,再通过调用strategy.setInclude(*GEN_TABLE_LIST.toTypedArray())函数来将已生效列表信息配置到对象strategy中,最终通过用autoGenerator.strategy=strategy函数来将strategy对象赋值到autoGenerator对象的strategy字段中。
通过调用autoGenerator.templateEngine=FreemarkerTemplateEngine()函数来配置生成的模板信息,其中,FreemarkerTemplateEngine()是模板引擎,可以将该模板引擎函数生成的模板信息赋值给autoGenerator对象中的templateEngine变量。最后通过调用autoGenerator.execute()函数来执行代码的生成功能,其中,execute是autoGenerator对象中德代码生成函数,最终execute可根据上述的配置规则生成最终所需的模板代码,由此提高了代码开发效率。
实施例四
图4为本发明实施例四提供的代码生成装置的结构框图,该装置用于执行上述任意实施例所提供的代码生成方法。该装置与上述各实施例的代码生成方法属于同一个发明构思,在代码生成装置的实施例中未详尽描述的细节内容,可以参考上述代码生成方法的实施例。参见图4,该装置具体可以包括:信息获取模块410、信息配置模块420、对象构建模块430、函数调用模块440以及代码生成模块450。
其中,信息获取模块410,用于获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息,其中该触发事件是监测到的用于实现代码生成的事件;信息配置模块420,用于对信息配置对象中的配置信息、数据库配置对象中数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置;对象构建模块430,用于将各配置结果和模板信息赋值给初始生成器对象,得到已构建完成的自动生成器对象;函数调用模块440,用于在监测到代码生成的触发事件时,获取与触发事件对应的自动生成器对象,并调用自动生成器对象中的代码生成函数,以使该代码生成函数根据自动生成器对象中的各赋值结果实现代码生成功能;代码生成模块模块450,用于根据代码生成函数的输出结果,得到与触发事件相应的目标代码。
可选的,信息配置模块420,具体可以包括:
第一信息配置单元,其中,所述第一信息配置单元,具体可以用于:
将代码输出路径信息、代码文件创建者信息和/或服务器命名信息分别配置到信息配置对象中相应的配置信息变量中;和/或,将类设置信息、语言设置信息、语言注解设置信息和/或结构设置信息分别配置到信息配置对象中相应的配置信息变量中,其中类设置信息包括代码文件是open的类、语言设置信息包括支持生成kotlin语言、语言注解设置信息包括支持Swagger2语言注解、和/或结构设置信息包括生成BaseResulMap结构以及BaseColumnList结构;
相应的,对象构建模块430,具体可以包括:第一对象构建单元,用于将配置后的信息配置对象赋值到初始生成器对象中的globalConfig变量中。
可选的,信息配置模块420,具体可以包括:
第二信息配置单元,其中,所述第二信息配置单元,具体可以用于:
将数据路径信息、数据库户名和/或数据库密码分别配置到数据库配置对象中相应的数据连接信息变量中,其中数据路径信息包括数据库域名、数据库名称和/或数据库端口;
相应的,对象构建模块430,具体可以包括:第二对象构建单元,用于将配置后的数据库配置对象赋值到初始生成器对象中的dataSource变量中。
可选的,信息配置模块420,具体可以包括:
第三信息配置单元,其中,所述第三信息配置单元,具体可以用于:
将包名信息配置到包配置对象中相应的包名信息变量中,其中,包名信息是目标代码所在的代码文件的路径信息;
相应的,对象构建模块430,具体可以包括:第三对象构建单元,用于将配置后的包配置对象赋值到初始生成器对象中的PackageInfo变量中。
可选的,可选的,信息配置模块420,具体可以包括:
第四信息配置单元,其中,所述第四信息配置单元,具体可以用于:
将代码文件和数据库列表的命名规则由下划线转化为驼峰,并将转化结果分别配置到策略对象中相应的配置信息变量中;和/或,将类支持信息配置到策略对象中相应的配置信息变量中,其中,类支持信息包括实体类不支持Lombok格式;和/或,将已生效列表信息配置到策略对象中相应的配置信息变量中;
相应的,对象构建模块430,具体可以包括:第四对象构建单元,用于将配置后的策略对象赋值到初始生成器对象中的strategy变量中。
可选的,函数调用模块440,可以包括:
对象获取单元,用于获取与触发事件对应的已有代码,从各候选信息中筛选出与已有代码相关联的模板信息,并根据模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。
可选的,代码生成函数通过代码生成子模块实现代码生成功能,其中所述代码生成子模块,具体可以用于:
根据自动生成器对象中的dataSource变量与待访问数据库进行连接;
根据自动生成器对象中的各赋值结果,将从待访问数据库的待访问列表中获取到的字段信息生成待访问数据库的实体类;
根据实体类和模板信息生成目标代码,并根据自动生成器对象中的PackageInfo变量对目标代码进行输出。
本发明实施例四提供的代码生成装置,通过信息获取模块、信息配置模块和对象构建模块相互配合,对获取到的信息配置对象中配置信息、数据库配置对象中的数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置,并将配置结果和获取到的模板信息赋值给初始生成器对象,由此可以得到已构建完成的自动生成器对象,该自动生成器对象可与至少一个开发人员已经开发出来的已有代码相对应;函数调用模块和代码生成模块相互配合,在监测到代码生成的触发事件时,可以获取到与该触发事件对应的自动生成器对象,此时可通过调用自动生成器对象中的代码生成函数生成与触发事件对应的目标代码。上述装置,基于与待生成的目标代码相对应的自动生成器对象,可以自动生成与开发人员已经开发出来的已有代码较为相似的目标代码,由此通过降低冗余代码的开发时间的方式,达到了提高代码的开发效率的效果。
本发明实施例所提供的代码生成装置可执行本发明任意实施例所提供的代码生成方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述代码生成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图5为本发明实施例五提供的一种电子设备的结构示意图,如图5所示,该电子设备包括存储器510、处理器520、输入装置530和输出装置540。电子设备中的处理器520的数量可以是一个或多个,图5中以一个处理器520为例;电子设备中的存储器510、处理器520、输入装置530和输出装置540可以通过总线或其它方式连接,图5中以通过总线550连接为例。
存储器510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的代码生成方法对应的程序指令/模块(例如代码生成装置中的信息获取模块410、信息配置模块420、对象构建模块430、函数调用模块440以及代码生成模块450)。处理器520通过运行存储在存储器510中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的代码生成方法。
存储器510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种代码生成方法,该方法包括:
在监测到代码生成的触发事件时,获取与触发事件对应的已构建完成的自动生成器对象,调用自动生成器对象中的代码生成函数;
根据代码生成函数的输出结果,得到与触发事件相应的目标代码;
其中,自动生成器对象通过如下步骤预先构建完成:
获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与触发事件对应的已有代码的模板信息;
对信息配置对象中的配置信息、数据库配置对象中数据连接信息、包配置对象中的包名信息和策略对象中的策略信息分别进行配置;
将各配置结果和模板信息赋值给初始生成器对象,得到自动生成器对象,其中,代码生成函数是根据自动生成器对象中的各赋值结果实现代码生成功能。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的代码生成方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种代码生成方法,其特征在于,包括:
在监测到代码生成的触发事件时,获取与所述触发事件对应的已构建完成的自动生成器对象,调用所述自动生成器对象中的代码生成函数;
根据所述代码生成函数的输出结果,得到与所述触发事件相应的目标代码;
其中,所述自动生成器对象通过如下步骤预先构建完成:
获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、以及与所述触发事件对应的已有代码的模板信息;
对所述信息配置对象中的配置信息、所述数据库配置对象中数据连接信息、所述包配置对象中的包名信息和所述策略对象中的策略信息分别进行配置;
将各配置结果和所述模板信息赋值给所述初始生成器对象,得到所述自动生成器对象,其中,所述代码生成函数是根据所述自动生成器对象中的各赋值结果实现代码生成功能。
2.根据权利要求1所述的方法,其特征在于,所述对所述信息配置对象中的配置信息进行配置,包括:
将代码输出路径信息、代码文件创建者信息和/或服务器命名信息分别配置到所述信息配置对象中相应的配置信息变量中;和/或,
将类设置信息、语言设置信息、语言注解设置信息和/或结构设置信息分别配置到所述信息配置对象中相应的配置信息变量中,其中所述类设置信息包括代码文件是open的类、所述语言设置信息包括支持生成kotlin语言、语言注解设置信息包括支持Swagger2语言注解、和/或所述结构设置信息包括生成BaseResulMap结构以及BaseColumnList结构;
相应的,所述将各配置结果赋值给所述初始生成器对象,包括:将配置后的所述信息配置对象赋值到所述初始生成器对象中的globalConfig变量中。
3.根据权利要求1所述的方法,其特征在于,所述对所述数据库配置对象中的数据连接信息进行配置,包括:
将数据路径信息、数据库户名和/或数据库密码分别配置到所述数据库配置对象中相应的数据连接信息变量中,其中所述数据路径信息包括数据库域名、数据库名称和/或数据库端口;
相应的,所述将各配置结果赋值给所述初始生成器对象,包括:将配置后的所述数据库配置对象赋值到所述初始生成器对象中的dataSource变量中。
4.根据权利要求1所述的方法,其特征在于,所述对所述包配置对象中的包名信息进行配置,包括:
将包名信息配置到所述包配置对象中相应的包名信息变量中,其中,所述包名信息是所述目标代码所在的代码文件的路径信息;
相应的,所述将各配置结果赋值给所述初始生成器对象,包括:将配置后的所述包配置对象赋值到所述初始生成器对象中的PackageInfo变量中。
5.根据权利要求1所述的方法,其特征在于,所述对所述策略对象中的策略信息进行配置,包括:
将代码文件和数据库列表的命名规则由下划线转化为驼峰,并将转化结果分别配置到所述策略对象中相应的配置信息变量中;和/或,
将类支持信息配置到所述策略对象中相应的配置信息变量中,其中,所述类支持信息包括实体类不支持Lombok格式;和/或,
将已生效列表信息配置到所述策略对象中相应的配置信息变量中;
相应的,所述将各配置结果赋值给所述初始生成器对象,包括:将配置后的所述策略对象赋值到所述初始生成器对象中的strategy变量中。
6.根据权利要求1所述的方法,其特征在于,所述获取与所述触发事件对应的已构建完成的自动生成器对象,包括:
获取与所述触发事件对应的已有代码,从各候选信息中筛选出与所述已有代码相关联的所述模板信息,并根据所述模板信息从已构建完成的各候选生成器对象中筛选出自动生成器对象。
7.根据权利要求1所述的方法,其特征在于,所述代码生成函数通过如下步骤实现代码生成功能:
根据所述自动生成器对象中的dataSource变量与待访问数据库进行连接;
根据所述自动生成器对象中的各所述赋值结果,将从所述待访问数据库的待访问列表中获取到的字段信息生成所述待访问数据库的实体类;
根据所述实体类和所述模板信息生成所述目标代码,并根据所述自动生成器对象中的PackageInfo变量对所述目标代码进行输出。
8.一种代码生成装置,其特征在于,包括:
函数调用模块,用于在监测到代码生成的触发事件时,获取触发事件对应的已构建完成的自动生成器对象,调用所述自动生成器对象中的代码生成函数;
代码生成模块,用于根据所述代码生成函数的输出结果,得到与所述触发事件相应的目标代码;
其中,所述自动生成器对象通过如下模块预先构建完成:
信息获取模块,用于获取初始构建得到的初始生成器对象、信息配置对象、数据库配置对象、包配置对象、策略对象、及与所述触发事件对应的已有代码的模板信息;
信息配置模块,用于对所述信息配置对象中的配置信息、所述数据库配置对象中数据连接信息、所述包配置对象中的包名信息和所述策略对象中的策略信息分别进行配置;
对象构建模块,用于将各配置结果和所述模板信息赋值给所述初始生成器对象,得到所述自动生成器对象,其中,所述代码生成函数是根据所述自动生成器对象中的各赋值结果实现代码生成功能。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的代码生成方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011127652.3A CN114385175A (zh) | 2020-10-20 | 2020-10-20 | 一种代码生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011127652.3A CN114385175A (zh) | 2020-10-20 | 2020-10-20 | 一种代码生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385175A true CN114385175A (zh) | 2022-04-22 |
Family
ID=81193312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011127652.3A Pending CN114385175A (zh) | 2020-10-20 | 2020-10-20 | 一种代码生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385175A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966532A (en) * | 1997-07-10 | 1999-10-12 | National Instruments Corporation | Graphical code generation wizard for automatically creating graphical programs |
WO2000022517A1 (en) * | 1998-10-13 | 2000-04-20 | Codagen Technologies Corp. | Component-based source code generator |
WO2002095570A2 (en) * | 2001-05-18 | 2002-11-28 | Koninklijke Philips Electronics N.V. | Code generation for integrating devices into a middleware framework |
US20030110468A1 (en) * | 2001-12-06 | 2003-06-12 | Yoshiyuki Maki | Program code generator and program |
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和系统 |
CN104461540A (zh) * | 2014-12-10 | 2015-03-25 | 浙江图讯科技有限公司 | 一种代码生成器的开发方法 |
CN104965714A (zh) * | 2015-07-27 | 2015-10-07 | 广州杰赛科技股份有限公司 | 应用软件的代码生成方法和系统 |
US20160041815A1 (en) * | 2014-08-11 | 2016-02-11 | Chirag P. Bhagat | Computer Source Code Generator for Building Software Applications |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN109522012A (zh) * | 2018-10-29 | 2019-03-26 | 珠海迎迎科技有限公司 | 一种自动代码生成器及自动代码生成方法 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN110941427A (zh) * | 2019-11-15 | 2020-03-31 | 珠海豹趣科技有限公司 | 代码生成方法及代码生成器 |
-
2020
- 2020-10-20 CN CN202011127652.3A patent/CN114385175A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966532A (en) * | 1997-07-10 | 1999-10-12 | National Instruments Corporation | Graphical code generation wizard for automatically creating graphical programs |
WO2000022517A1 (en) * | 1998-10-13 | 2000-04-20 | Codagen Technologies Corp. | Component-based source code generator |
WO2002095570A2 (en) * | 2001-05-18 | 2002-11-28 | Koninklijke Philips Electronics N.V. | Code generation for integrating devices into a middleware framework |
US20030110468A1 (en) * | 2001-12-06 | 2003-06-12 | Yoshiyuki Maki | Program code generator and program |
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和系统 |
US20160041815A1 (en) * | 2014-08-11 | 2016-02-11 | Chirag P. Bhagat | Computer Source Code Generator for Building Software Applications |
CN104461540A (zh) * | 2014-12-10 | 2015-03-25 | 浙江图讯科技有限公司 | 一种代码生成器的开发方法 |
CN104965714A (zh) * | 2015-07-27 | 2015-10-07 | 广州杰赛科技股份有限公司 | 应用软件的代码生成方法和系统 |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN109976732A (zh) * | 2017-12-28 | 2019-07-05 | 重庆南华中天信息技术有限公司 | 可将相同编程模型映射成不同语言代码程序的方法及系统 |
CN109522012A (zh) * | 2018-10-29 | 2019-03-26 | 珠海迎迎科技有限公司 | 一种自动代码生成器及自动代码生成方法 |
CN110674625A (zh) * | 2019-08-29 | 2020-01-10 | 浙江数链科技有限公司 | 代码生成的方法、装置、计算机设备和存储介质 |
CN110941427A (zh) * | 2019-11-15 | 2020-03-31 | 珠海豹趣科技有限公司 | 代码生成方法及代码生成器 |
Non-Patent Citations (1)
Title |
---|
果子爸聊技术: "早点下班陪女朋友系列之Mybatis-plus代码生成器", pages 1 - 6, Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/196805957》> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3564829B1 (en) | A modified representational state transfer (rest) application programming interface (api) including a customized graphql framework | |
US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN108279882B (zh) | 框架生成方法、装置、设备及计算机可读介质 | |
US20140365198A1 (en) | Techniques to simulate production events | |
US11699073B2 (en) | Network off-line model processing method, artificial intelligence processing device and related products | |
CN110727417B (zh) | 一种数据处理方法和装置 | |
WO2016058488A1 (zh) | 一种用于提供sdk文件的方法与设备 | |
CN109343983B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN112579997B (zh) | 一种用户权限配置方法、装置、计算机设备及存储介质 | |
CN111414619B (zh) | 一种数据安全检测方法、装置、设备及可读存储介质 | |
CN111008254B (zh) | 一种对象创建方法、装置、计算机设备和存储介质 | |
CN109388388B (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN110750295B (zh) | 一种信息处理方法,装置,电子设备和存储介质 | |
CN110704099B (zh) | 联盟链的构建方法、装置和电子设备 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN114500368B (zh) | 数据传输方法和装置及采用该装置的路由器 | |
CN103561113A (zh) | Web Service接口的生成方法及装置 | |
US11755297B2 (en) | Compiling monoglot function compositions into a single entity | |
US9537931B2 (en) | Dynamic object oriented remote instantiation | |
CN114385175A (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
CN112231011B (zh) | 基于activiti的流程图调整方法、装置、电子设备和存储介质 | |
CN114139079A (zh) | 一种api请求的处理方法、装置、设备及存储介质 | |
CN111400060B (zh) | 设备联动方法、装置、服务器和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |