CN109062568A - 一种项目生成方法及工具 - Google Patents
一种项目生成方法及工具 Download PDFInfo
- Publication number
- CN109062568A CN109062568A CN201810630232.3A CN201810630232A CN109062568A CN 109062568 A CN109062568 A CN 109062568A CN 201810630232 A CN201810630232 A CN 201810630232A CN 109062568 A CN109062568 A CN 109062568A
- Authority
- CN
- China
- Prior art keywords
- layers
- configuration
- code
- file
- project
- 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.)
- Withdrawn
Links
Classifications
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种项目生成方法及工具。其中,所述方法包括:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。本发明实施例除了生成与持久化数据源绑定的代码外,还生成了项目所必需的其他功能模块,并生成项目的构建文件,提供项目的完整框架,能满足企业级项目一般性要求,减少开发人员重复工作,提升开发效率。
Description
技术领域
本发明实施例涉及软件开发技术领域,具体涉及一种项目生成方法及工具。
背景技术
在软件开发过程中,开发人员常常会花费大量的时间编写重复的代码。为减少开发人员的重复劳动,现在的软件行业里出现了代码生成器,可以实现软件较为共性的功能。
现有架构趋向“高内聚,低耦合”的特点,且由于微服务、消息队列、缓存技术的发展使得代码的模块更多。但是现有的代码生成方法,仅仅生成Dao、Domain层与数据源相关的代码,这些代码只是一个工程项目代码的一小部分,无法作为项目代码直接进行开发,生成的代码还需要软件开发人员花费数天的时间搭建框架和修改,以适配生成的代码,才能开展项目的进一步开发。
发明内容
为解决现有技术中无法生成具备完整框架的项目代码的问题,本发明实施例提供一种项目生成方法及工具。
第一方面,本发明实施例提供一种项目生成方法,该方法包括:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
第二方面,本发明实施例提供一种项目生成工具,该工具包括:规则配置模块,具体用于:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;项目生成模块,具体用于:根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
本发明实施例除了生成与持久化数据源绑定的代码外,还生成了项目所必需的其他功能模块,并生成项目的构建文件,提供项目的完整框架,能满足企业级项目一般性要求,减少开发人员重复工作,提升开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的项目生成方法流程图;
图2是本发明实施例提供的项目生成工具结构示意图;
图3为本发明实施例提供的计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的项目生成方法流程图。如图1所示,所述方法包括:
步骤101、配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;
由于不同的项目具有不同的特点或要求,并且依赖于不同的数据源,因此,在利用模板引擎渲染生成项目文件之前,需要首先配置代码生成规则。所述配置代码生成规则包括配置数据源,所述配置数据源是指确定项目所依赖的数据表等。比如,可以将通过连接数据库选择的所需数据表,作为持久化数据源。配置数据源用于生成Dao层和Model层代码。
所述配置代码生成规则还可以包括设置项目名称等个性化设置,以适应不同的项目需求。
配置代码生成规则后,根据所配置的代码生成规则生成配置参数,所述配置参数用来描述所述代码生成规则,如通过所述配置参数可以获知所述数据源配置的情况。
步骤102、根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板。所述配置参数可以包括对应不同层模板的配置参数,如分别对应Api层、Model层、Dao层、Common层、Service层及Web层模板的配置参数。所述预设项目生成逻辑,是指项目生成的流程或规则,比如可以包括生成各模块代码的顺序。所述各模块代码包括如上所述的Api层、Model层、Dao层、Common层、Service层及Web层的代码。
所述根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件,可以为根据预设的各模块代码的生成顺序,进行所述配置参数和预设模板的匹配,进而渲染出各模块的代码文件,具体可由模板引擎完成,如FreeMarker模板引擎、velocity模板引擎等。比如,若首先生成Dao层代码,则将与Dao层有关的配置参数与Dao层模板进行匹配,渲染生成Dao层代码;再生成Model层代码,则将与Model层有关的配置参数与Model层模板进行匹配,渲染生成Model层代码,以此类推。其中,所述代码可以为java代码、c++代码等,具体根据编程语言而定。
所生成的项目文件,主要包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件。其中,Model层代码文件包括Domain层代码文件。开发一个项目时,必须包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件才能进一步进行项目的开发,因此本发明实施例生成的项目文件包含了项目所必需的各模块代码。并且,本发明实施例提供的项目生成方法,由于项目按照每个用户的个性化要求(配置)生成,因此,可以直接在生成的代码的基础上进行开发。导出项目后可直接导入IDE集成开发环境(IntegratedDevelopment Environment)使用,不用用户做任何改动。而不像现有技术中的代码生成工具,只生成项目开发所需的一小部分代码,在进行项目开发之前,还要付出大量的劳动来搭建框架。
本发明实施例所生成的项目文件,除包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件之外,还包括项目构建文件。可以根据所需项目构建工具,生成Maven或者Gradle配置文件。构建文件配置依赖均为开源第三方依赖,公网仓库即可使,提供项目的完整骨架。
对于每个模块的代码,还可以同时生成示例代码文件,方便用户使用。
本发明实施例除了生成与持久化数据源绑定的代码外,还生成了项目所必需的其他功能模块,并生成项目的构建文件,提供项目的完整框架,能满足企业级项目一般性要求,减少开发人员重复工作,提升开发效率。
进一步地,基于上述实施例,所述配置数据源通过导入SQL脚本文件或预设数据库的数据表实现;其中,所述预设数据库为一个或多个。
现有代码生成技术中,元数据(数据源)基于某种特定数据库,不具备通用性。本发明实施例可以直接导入SQL脚本文件,不依赖数据库,项目生成工具会自动解析数据源。另外,由于大部分数据库均是基于SQL脚本文件的,因此在所述SQL脚本文件的基础上,还可以通过连接数据库选择所需数据表,以此作为持久化数据源,所述数据库可以为MySQL、Oracle、SqlServer等。因此,本发明实施例不依赖特定数据库,可直接根据SQL脚本文件生成数据源关联的代码,并在此基础上提供更多常用数据库供选择。
在上述实施例的基础上,本发明实施例通过利用SQL脚本文件解析数据源,避免了数据库的限制;并可实现利用多种数据库解析数据源,提高了通用性。
进一步地,基于上述实施例,所述配置代码生成规则还包括配置代码风格;所述配置代码风格包括根据系统预设的代码风格模板配置代码风格或根据自定义的代码风格模板配置代码风格。
所述配置代码生成规则还包括配置代码风格;所述代码风格是指对应于不同代码撰写习惯的代码风格,如平铺式、流式等。系统中可以预设代码风格模板以供选择,即所述代码风格可以根据系统预设的代码风格模板进行配置。
如果用户不喜欢系统预设的代码风格模板,仍可自定义模板,模板引擎渲染时将按照用户自定义的模板生成代码文件,即所述代码风格还可以根据自定义的代码风格模板进行配置。自定义代码风格模板相当于用户在已有基础上进行可视化二次开发,减少了开发者相当一部分重复工作。
在上述实施例的基础上,本发明实施例通过配置代码风格可实现个性化的代码,并通过根据自定义的代码风格模板配置代码风格实现了可视化灵活配置。
进一步地,基于上述实施例,所述配置代码生成规则还包括配置插件;所述Common层代码文件包括根据配置的所述插件生成的工具类,所述工具类包括事务、分布式锁、分库分表组件、Redis、邮件发送及日志组件。
具体地,可以通过获取插件选择情况配置插件。配置插件后,除在所述构建文件中包含所述插件的相关描述外,所述Common层代码文件包括根据配置的所述插件生成的工具类,所述工具类包括事务、分布式锁、分库分表组件、Redis、邮件发送及日志组件。本发明实施例可以生成一个零工作开箱即用的工程项目。
在上述实施例的基础上,本发明实施例通过配置插件并在Common层代码文件中生成与插件对应的工具类,丰富了所生成项目的功能。
进一步地,基于上述实施例,所述方法还包括:根据所述配置参数生成配置文件,并将所述配置文件导出到本地。
由于项目生成工具是无状态的,即不通过账号、密码等登录,也即无法将内容存储至服务器端。因此,为提升开发者使用体验,方便下一次使用,本发明实施例提供的项目生成方法提供导出配置文件的功能。
具体地,根据所述配置参数生成配置文件,并将所述配置文件导出到本地。在需要查看或使用所述配置文件时,可直接通过所述配置文件的存储路径获取。
在上述实施例的基础上,本发明实施例通过提供导出配置文件的功能,提高了灵活性、丰富了功能。
进一步地,基于上述实施例,所述方法还包括:若判断获知当前所述项目文件的数据源配置发生变化,则进一步获取数据源配置的变化情况,并根据所述变化情况更新Dao层和model层的代码文件。
现有技术中,对于依赖数据源生成的那部分代码是全量生成,所述全量生成是指根据所确定的数据源生成全部的与数据源相关的代码文件。而由于在项目研发过程中,发生对数据源修改时,往往初始生成的代码已经做了很多改动,无法重新生成一份。因此,现有技术实际上就只有初始生成的代码给开发人员带来了些许便利,后期还是需要在这部分与数据源绑定的代码上投入很多精力。
对已修改项目,在软件迭代优化过程中,如果用户端有对数据源做过修改,可以将项目打成zip包提交到项目生成工具(后台),项目生成工具接收到所述zip包后,便获知所述zip包的当前项目文件的数据源配置发生了变化。项目生成工具则进一步获取当前项目文件中数据源配置的变化情况,并针对所述变化情况更新Dao层和model层的代码文件。
配置数据源之前,所述SQL脚本包括项目所需的数据源的描述,或利用数据库解析数据源时,数据库通常包含的也是项目所需的全部数据源文件。因此,对于每个项目,项目生成工具(后台)可以获知对应于某个项目的初始代码的数据源配置。比如,在初始生成项目文件时的数据源配置为A1~A10共10个数据表,若项目生成工具通过查找获知当前项目文件中的代码只包括对应于A1~A9共9个数据表的类名,则可获知缺少A10数据表对应的类,因此,只需通过生成与A10数据表对应的代码更新Dao层和model层的代码文件,而无需全量生成,避免了影响已修改的其他数据源对应的代码。
在上述实施例的基础上,本发明实施例通过根据所述变化情况更新Dao层和model层的代码文件,提高了依赖数据源生成的代码在项目研发过程中更新的便利性和快捷性。
进一步地,基于上述实施例,所述进一步获取数据源配置的变化情况,具体包括:通过比较当前所述项目文件中的数据源配置和所述配置文件中的数据源配置,获取数据源配置的变化情况。
所述配置文件根据所述配置参数生成,并保存于本地。根据所述配置文件可以获知所述代码生成规则,其中,所述代码生成规则包括数据源配置规则,也即数据源配置情况。因此,根据所述配置文件的存储目录获取到所述配置文件后,可以获取到所述项目的初始代码生成时对应的数据源配置,根据当前项目的代码获取所述项目当前的数据源配置,将所述项目的初始代码生成时对应的数据源配置和所述项目当前的数据源配置进行比较,可获知数据源配置的变化情况。
比如,若在生成项目初始代码时,进行的数据源配置中所包含的数据表并不是项目对应数据库中的所有表,而是其中一部分时,此时,便无法根据项目对应的数据库获知项目的初始代码生成时对应的数据源配置,但由于生成项目时同时生成并保存了配置文件,因此,根据所述配置文件可以获知项目的初始代码生成时对应的数据源配置。
在上述实施例的基础上,本发明实施例通过比较当前所述项目文件中的数据源配置和配置文件中的数据源配置,获取数据源配置的变化情况,提高了根据数据源配置的变化情况更新Dao层和model层的代码文件的通用性。
图2是本发明实施例提供的项目生成工具结构示意图。如图2所示,所述工具包括规则配置模块10和项目生成模块20,其中:
规则配置模块10具体用于:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;
所述配置代码生成规则包括配置数据源,所述配置数据源是指确定项目所依赖的数据表等。所述配置代码生成规则还可以包括设置项目名称等个性化设置,以适应不同的项目需求。
规则配置模块10配置代码生成规则后,根据所配置的代码生成规则生成配置参数,所述配置参数用来描述所述代码生成规则。
项目生成模块20具体用于:根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
项目生成模块20根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板。所述配置参数可以包括对应不同层模板的配置参数。所述预设项目生成逻辑,是指项目生成的流程或规则。
项目生成模块20根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件,可以为根据预设的各模块代码的生成顺序,进行所述配置参数和预设模板的匹配,进而渲染出各模块的代码文件。
项目生成模块20所生成的项目文件,主要包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件。其中,Model层代码文件包括Domain层代码文件。本发明实施例所生成的项目文件,除包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件之外,还包括项目构建文件。项目生成模块20可以根据所需项目构建工具,生成Maven或者Gradle配置文件。
本发明实施例除了生成与持久化数据源绑定的代码外,还生成了项目所必需的其他功能模块,并生成项目的构建文件,提供项目的完整框架,能满足企业级项目一般性要求,减少开发人员重复工作,提升开发效率。
进一步地,基于上述实施例,规则配置模块10在用于配置数据源时,通过导入SQL脚本文件或预设数据库的数据表实现;其中,所述预设数据库为一个或多个。
规则配置模块10可以直接导入SQL脚本文件,不依赖数据库,可以根据SQL脚本文件自动解析数据源。另外,由于大部分数据库均是基于SQL脚本文件的,因此在所述SQL脚本文件的基础上,还可以通过连接数据库选择所需数据表,以此作为持久化数据源,所述预设数据库为一个或多个。
在上述实施例的基础上,本发明实施例通过利用SQL脚本文件解析数据源,避免了数据库的限制;并可实现利用多种数据库解析数据源,提高了通用性。
进一步地,基于上述实施例,规则配置模块10在用于配置代码生成规则时,还用于配置代码风格;所述配置代码风格包括根据系统预设的代码风格模板配置代码风格或根据自定义的代码风格模板配置代码风格。
规则配置模块10在用于配置代码生成规则时,还用于配置代码风格;所述代码风格是指对应于不同代码撰写习惯的代码风格,如平铺式、流式等。代码生成工具中可以预设代码风格模板以供选择,即所述代码风格可以根据系统预设的代码风格模板进行配置。
规则配置模块10还可按照自定义的代码风格模板进行配置代码风格。自定义代码风格模板相当于用户在已有基础上进行可视化二次开发,减少了开发者相当一部分重复工作。
在上述实施例的基础上,本发明实施例通过配置代码风格可实现个性化的代码,并通过根据自定义的代码风格模板配置代码风格实现了可视化灵活配置。
进一步地,基于上述实施例,规则配置模块10在用于配置代码生成规则时,还用于配置插件;所述Common层代码文件包括根据配置的所述插件生成的工具类,所述工具类包括事务、分布式锁、分库分表组件、Redis、邮件发送及日志组件。
具体地,规则配置模块10可以通过获取插件选择情况配置插件。规则配置模块10配置插件后,除在所述构建文件中包含所述插件的相关描述外,所述Common层代码文件包括根据配置的所述插件生成的工具类,所述工具类包括事务、分布式锁、分库分表组件、Redis、邮件发送及日志组件。
在上述实施例的基础上,本发明实施例通过配置插件并在Common层代码文件中生成与插件对应的工具类,丰富了所生成项目的功能。
进一步地,基于上述实施例,所述工具还包括配置文件导出模块,具体用于:根据所述配置参数生成配置文件,并将所述配置文件导出到本地。
由于项目生成工具是无状态的,因此,为提升开发者使用体验,方便下一次使用,本发明实施例提供的项目生成工具还包括配置文件导出模块,提供导出配置文件的功能。
具体地,配置文件导出模块根据所述配置参数生成配置文件,并将所述配置文件导出到本地。在需要查看或使用所述配置文件时,可直接通过所述配置文件的存储路径获取。
在上述实施例的基础上,本发明实施例通过提供导出配置文件的功能,提高了灵活性。
进一步地,基于上述实施例,所述工具还包括更新模块,具体用于:若判断获知当前所述项目文件的数据源配置发生变化,则进一步获取数据源配置的变化情况,并根据所述变化情况更新Dao层和model层的代码文件。
对已修改项目,在软件迭代优化过程中,如果用户端有对数据源做过修改,可以将项目提交到项目生成工具的更新模块,项目生成工具的更新模块接收此项目的文件后,便获知当前项目文件的数据源配置发生了变化。更新模块则进一步获取当前项目文件中数据源配置的变化情况,并针对所述变化情况更新Dao层和model层的代码文件。
更新模块可以根据生成项目初始代码时所依据的SQL脚本或数据库获取生成项目初始代码时的数据源配置,并通过当前的代码文件获取当前项目的数据源配置,通过二者比较获取当前项目文件中数据源配置的变化情况,并针对所述变化情况更新Dao层和model层的代码文件。
在上述实施例的基础上,本发明实施例通过根据所述变化情况更新Dao层和model层的代码文件,提高了依赖数据源生成的代码在项目研发过程中更新的便利性和快捷性。
进一步地,基于上述实施例,所述更新模块在用于进一步获取数据源配置的变化情况时,具体用于:通过比较当前所述项目文件中的数据源配置和所述配置文件中的数据源配置,获取数据源配置的变化情况。
所述配置文件根据所述配置参数生成,并保存于本地。根据所述配置文件可以获知数据源配置情况。因此,更新模块获取到所述配置文件后,可以获取到所述项目的初始代码生成时对应的数据源配置,根据当前项目的代码获取所述项目当前的数据源配置,将所述项目的初始代码生成时对应的数据源配置和所述项目当前的数据源配置进行比较,可获知数据源配置的变化情况。
在上述实施例的基础上,本发明实施例通过比较当前所述项目文件中的数据源配置和配置文件中的数据源配置,获取数据源配置的变化情况,提高了根据数据源配置的变化情况更新Dao层和model层的代码文件的通用性。
本发明实施例提供的工具是用于上述方法的,具体功能可参照上述方法流程,此处不再赘述。
图3为本发明实施例提供的计算机设备的结构示意图。如图3所示,所述计算机设备包括处理器301、存储器302和总线303。其中,所述处理器301和所述存储器302通过所述总线303完成相互间的通信;所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的计算机设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种项目生成方法,其特征在于,包括:
配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;
根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
2.根据权利要求1所述的方法,其特征在于,所述配置数据源通过导入SQL脚本文件或预设数据库的数据表实现;其中,所述预设数据库为一个或多个。
3.根据权利要求1所述的方法,其特征在于,所述配置代码生成规则还包括配置代码风格;所述配置代码风格包括根据系统预设的代码风格模板配置代码风格或根据自定义的代码风格模板配置代码风格。
4.根据权利要求3所述的方法,其特征在于,所述配置代码生成规则还包括配置插件;所述Common层代码文件包括根据配置的所述插件生成的工具类,所述工具类包括事务、分布式锁、分库分表组件、Redis、邮件发送及日志组件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述配置参数生成配置文件,并将所述配置文件导出到本地。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若判断获知当前所述项目文件的数据源配置发生变化,则进一步获取数据源配置的变化情况,并根据所述变化情况更新Dao层和model层的代码文件。
7.根据权利要求6所述的方法,其特征在于,所述进一步获取数据源配置的变化情况,具体包括:
通过比较当前所述项目文件中的数据源配置和所述配置文件中的数据源配置,获取数据源配置的变化情况。
8.一种项目生成工具,其特征在于,包括:
规则配置模块,具体用于:配置代码生成规则,所述配置代码生成规则包括配置数据源;并根据所述代码生成规则生成配置参数;
项目生成模块,具体用于:根据预设项目生成逻辑,匹配所述配置参数和预设模板,渲染生成项目文件;其中,所述预设模板包括Api层、Model层、Dao层、Common层、Service层及Web层模板;所述项目文件包括Api层、Model层、Dao层、Common层、Service层及Web层的代码文件及项目构建文件。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810630232.3A CN109062568A (zh) | 2018-06-19 | 2018-06-19 | 一种项目生成方法及工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810630232.3A CN109062568A (zh) | 2018-06-19 | 2018-06-19 | 一种项目生成方法及工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109062568A true CN109062568A (zh) | 2018-12-21 |
Family
ID=64820535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810630232.3A Withdrawn CN109062568A (zh) | 2018-06-19 | 2018-06-19 | 一种项目生成方法及工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062568A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857397A (zh) * | 2019-01-18 | 2019-06-07 | 泰康保险集团股份有限公司 | 项目构建的方法、装置和存储介质 |
CN110941423A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市航通智能技术有限公司 | 一种基于Java的快速生成代码方法 |
CN111190586A (zh) * | 2019-12-16 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 软件开发框架的搭建及使用方法、计算设备和存储介质 |
CN111324343A (zh) * | 2020-02-20 | 2020-06-23 | 支付宝(杭州)信息技术有限公司 | 代码生成方法以及装置 |
CN111414162A (zh) * | 2019-01-07 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及其设备 |
CN111625219A (zh) * | 2020-05-22 | 2020-09-04 | 杭州指令集智能科技有限公司 | 一种bo组件处理方法、装置及设备 |
CN112486494A (zh) * | 2020-11-16 | 2021-03-12 | 中信银行股份有限公司 | 文件生成方法、装置、电子设备及计算机可读存储介质 |
CN112860248A (zh) * | 2019-11-27 | 2021-05-28 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN113535141A (zh) * | 2020-04-16 | 2021-10-22 | 浙江大搜车软件技术有限公司 | 数据库操作代码的生成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5767960A (en) * | 1996-06-14 | 1998-06-16 | Ascension Technology Corporation | Optical 6D measurement system with three fan-shaped beams rotating around one axis |
CN102495692A (zh) * | 2011-12-08 | 2012-06-13 | 青岛海信移动通信技术股份有限公司 | 一种识别用户手势操作的方法及电子产品 |
CN106598620A (zh) * | 2016-12-21 | 2017-04-26 | 深圳南北互联网金融服务有限公司 | 代码生成方法及代码生成器 |
-
2018
- 2018-06-19 CN CN201810630232.3A patent/CN109062568A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5767960A (en) * | 1996-06-14 | 1998-06-16 | Ascension Technology Corporation | Optical 6D measurement system with three fan-shaped beams rotating around one axis |
CN102495692A (zh) * | 2011-12-08 | 2012-06-13 | 青岛海信移动通信技术股份有限公司 | 一种识别用户手势操作的方法及电子产品 |
CN106598620A (zh) * | 2016-12-21 | 2017-04-26 | 深圳南北互联网金融服务有限公司 | 代码生成方法及代码生成器 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414162A (zh) * | 2019-01-07 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及其设备 |
CN111414162B (zh) * | 2019-01-07 | 2024-04-09 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及其设备 |
CN109857397A (zh) * | 2019-01-18 | 2019-06-07 | 泰康保险集团股份有限公司 | 项目构建的方法、装置和存储介质 |
CN110941423A (zh) * | 2019-11-22 | 2020-03-31 | 深圳市航通智能技术有限公司 | 一种基于Java的快速生成代码方法 |
CN112860248A (zh) * | 2019-11-27 | 2021-05-28 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN112860248B (zh) * | 2019-11-27 | 2023-12-05 | 中盈优创资讯科技有限公司 | 源代码生成方法及装置 |
CN111190586A (zh) * | 2019-12-16 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 软件开发框架的搭建及使用方法、计算设备和存储介质 |
CN111324343A (zh) * | 2020-02-20 | 2020-06-23 | 支付宝(杭州)信息技术有限公司 | 代码生成方法以及装置 |
CN111324343B (zh) * | 2020-02-20 | 2022-03-25 | 蚂蚁财富(上海)金融信息服务有限公司 | 代码生成方法以及装置 |
CN113535141A (zh) * | 2020-04-16 | 2021-10-22 | 浙江大搜车软件技术有限公司 | 数据库操作代码的生成方法及装置 |
CN111625219A (zh) * | 2020-05-22 | 2020-09-04 | 杭州指令集智能科技有限公司 | 一种bo组件处理方法、装置及设备 |
CN112486494A (zh) * | 2020-11-16 | 2021-03-12 | 中信银行股份有限公司 | 文件生成方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062568A (zh) | 一种项目生成方法及工具 | |
US7886284B2 (en) | Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems | |
US7412687B2 (en) | Creating customized applications using templates having points of variability | |
CN107273122A (zh) | 基于解耦机制的可迭代组建业务系统的方法及其终端 | |
US7761786B2 (en) | Reusable XPath validation expressions | |
CN103744680B (zh) | 一种业务流程处理方法及装置 | |
KR102237877B1 (ko) | 실시간 협업지원 지능형 소프트웨어 자동 개발 시스템 및 그 방법 | |
US7581207B2 (en) | Method of configuring managed entities in a communications network using configuration templates | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN110389832A (zh) | ZooKeeper容器集群部署方法、系统、设备及存储介质 | |
CN106873972A (zh) | 基于插件的电网规划仿真平台计算模块接入方法及系统 | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
WO2005069942A2 (en) | System and method for generating and deploying a software application | |
CN112633691A (zh) | 生成自定义审批流程的方法和装置 | |
CN110419024A (zh) | 用于在开发环境中自动生成和合并代码的方法和设备 | |
CN104793961A (zh) | 使用原生Web代码的快速JavaWeb开发方法及系统 | |
US20130067456A1 (en) | Application configuration framework for enterprise resource planning application installation | |
CN108763960A (zh) | 资源权限管理方法及装置 | |
CN105183645A (zh) | 一种基于复用的雷达软件测试设计与实现的方法 | |
CN111124636A (zh) | 一种流程编排引擎及其控制方法 | |
CN105930344B (zh) | 一种基于产品研制流程的数据库应用系统快速开发平台 | |
WO2012088769A1 (zh) | 数据过滤系统和方法 | |
CN104217270A (zh) | 业务流程应用文件生成和执行方法、客户端、设备及系统 | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
CN110069278A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181221 |