CN113342399A - 应用项目的结构配置方法、装置及可读存储介质 - Google Patents

应用项目的结构配置方法、装置及可读存储介质 Download PDF

Info

Publication number
CN113342399A
CN113342399A CN202110724517.5A CN202110724517A CN113342399A CN 113342399 A CN113342399 A CN 113342399A CN 202110724517 A CN202110724517 A CN 202110724517A CN 113342399 A CN113342399 A CN 113342399A
Authority
CN
China
Prior art keywords
path structure
project
layer
architecture
structure configuration
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
Application number
CN202110724517.5A
Other languages
English (en)
Inventor
陈弟杰
张艺馨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202110724517.5A priority Critical patent/CN113342399A/zh
Publication of CN113342399A publication Critical patent/CN113342399A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种应用项目的结构配置方法、装置及可读存储介质,该方法包括:响应于该创建项目结构配置文件的操作,包括多个路径结构配置项的显示用户界面,该项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构,该多个路径结构配置项对应该多个架构层;响应于用户在第一路径结构配置项输入第一路径结构信息,在该用户界面显示该第一路径结构信息;生成该项目结构配置文件,该项目结构配置文件包括该第一路径结构信息;调用该项目结构配置文件,生成该多个架构层的路径结构,其中,第一架构层的路径结构是基于该第一路径结构信息生成的,该第一架构层为该多个架构层中与该第一路径结构配置项对应的架构层。能够提高软件开发的效率。

Description

应用项目的结构配置方法、装置及可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用项目的结构配置方法、装置及可读存储介质。
背景技术
随着信息技术的发展,在软件开发过程中,已经能够实现通过自动代码生成器(例如,MyBatis代码生成器等)代替人工逐行编写代码的方式完成软件开发,降低了开发人员的工作量。
然而,目前自动代码生成器生成的代码项目结构为固定的,如果需要自定义代码项目结构,仍需要开发人员在软件开发的初期手动编写配置代码来实现,开发人员需要学习相应的配置逻辑以及相关的应用程序接口(Application Programming Interface,API)的使用方法才能完成配置,增加了软件开发的时间成本,效率较低。
发明内容
本申请提供一种应用项目的结构配置方法、装置及可读存储介质,用以提高软件开发的效率。
第一方面,本申请提供一种应用项目的结构配置方法,该方法包括:接收来自用户创建项目结构配置文件的操作,该项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构;响应于该创建项目结构配置文件的操作,显示用户界面,该用户界面包括多个路径结构配置项,该多个路径结构配置项对应该多个架构层;响应于用户在第一路径结构配置项输入第一路径结构信息,在该用户界面显示该第一路径结构信息,其中,该多个路径结构配置项包括该第一路径结构配置项;生成该项目结构配置文件,该项目结构配置文件包括该第一路径结构信息;响应于用户的获取应用项目的架构的操作,调用该项目结构配置文件,生成该多个架构层的路径结构,其中,第一架构层的路径结构是基于该第一路径结构信息生成的,该第一架构层为该多个架构层中与该第一路径结构配置项对应的架构层。
根据上述方案,可以将自动代码生成器的Java代码配置方式转换成配置文件的配置方式,而无需逐行编写代码,使应用开发项目实现代码与配置分离。能够降低开发成本,提高开发效率。
结合第一方面,在第一方面的某些实现方式中,该生成该多个架构层的路径结构,包括:通过属性工具类解析该项目结构配置文件,读取该第一路径结构信息;将该第一路径结构信息转换为路径结构参数,该路径结构参数为代码生成器兼容的参数;基于该路径结构参数和该代码生成器,生成该第一架构层的路径结构。
结合第一方面,在第一方面的某些实现方式中,该基于该路径结构参数和该代码生成器,生成该第一架构层的路径结构,包括:采用反射技术,获取该代码生成器中该第一架构层对应的第一类成员变量;采用该路径结构参数配置该第一类成员变量后得到第二类成员变量;采用反射技术,将该第二类成员变量输入该代码生成器;获取该代码生成器输出的该第一架构层的路径结构。
结合第一方面,在第一方面的某些实现方式中,该第一架构层包括以下一项或多项:
数据访问对象层,用于为对象提供数据库接口;
实体层,用于保存数据库的实体类;
映射可扩展标识语言层:用于配置数据库数据和对象之间的转换关系,以及请求数据库所需的结构化查询语言SQL语句;
业务层,用于业务块的逻辑应用设计;
控制器层,用于业务块流程的控制。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:运行代码生成器主类;接收用户输入的项目模块的名称以及该项目模块的参数;基于该项目模块的名称、该项目模块的参数以及该多个架构层的路径结构,生成该项目模块。
结合第一方面,在第一方面的某些实现方式中,若生成该项目结构配置文件之前未接收到用户对第二路径结构配置项输入的路径结构信息,该生成该多个架构层的路径结构,包括:生成第二架构层的预定义路径结构;其中,该第二架构层为该多个架构层中除该第一架构层以外的架构层,该第二架构层与该第二路径结构配置项相对应。
第二方面,本申请提供了一种应用项目的结构配置装置,包括:获取单元,用于获取来自用户创建项目结构配置文件的操作,该项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构;显示单元,用于响应于该创建项目结构配置文件的操作,显示用户界面,该用户界面包括多个路径结构配置项,该多个路径结构配置项对应该多个架构层;该显示单元还用于响应于用户在第一路径结构配置项输入第一路径结构信息,在该用户界面显示该第一路径结构信息,其中,该多个路径结构配置项包括该第一路径结构配置项;处理单元,生成该项目结构配置文件,该项目结构配置文件包括该第一路径结构信息;该处理单元还用于响应于用户的获取应用项目的架构的操作,调用该项目结构配置文件,生成该多个架构层的路径结构,其中,第一架构层的路径结构是基于该第一路径结构信息生成的,该第一架构层为该多个架构层中与该第一路径结构配置项对应的架构层。
结合第二方面,在第二方面的某些实现方式中,该处理单元具体用于:通过属性工具类解析该项目结构配置文件,读取该第一路径结构信息;将该第一路径结构信息转换为路径结构参数,该路径结构参数为代码生成器兼容的参数;基于该路径结构参数和该代码生成器,生成该第一架构层的路径结构。
结合第二方面,在第二方面的某些实现方式中,该处理单元具体用于:采用反射技术,获取该代码生成器中该第一架构层对应的第一类成员变量;采用该路径结构参数配置该第一类成员变量后得到第二类成员变量;采用反射技术,将该第二类成员变量输入该代码生成器;获取该代码生成器输出的该第一架构层的路径结构。
结合第二方面,在第二方面的某些实现方式中,该第一架构层包括以下一项或多项:
数据访问对象层,用于为对象提供数据库接口;
实体层,用于保存数据库的实体类;
映射可扩展标识语言层:用于配置数据库数据和对象之间的转换关系,以及请求数据库所需的结构化查询语言SQL语句;
业务层,用于业务块的逻辑应用设计;
控制器层,用于业务块流程的控制。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于运行代码生成器主类;该获取单元还用于获取用户输入的项目模块的名称以及该项目模块的参数;该处理单元还用于基于该项目模块的名称、该项目模块的参数以及该多个架构层的路径结构,生成该项目模块。
结合第二方面,在第二方面的某些实现方式中,该处理单元具体用于生成第二架构层的预定义路径结构,其中,该第二架构层为该多个架构层中除该第一架构层以外的架构层,该第二架构层与该第二路径结构配置项相对应。
第三方面,提供了一种电子设备,所述电子设备包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行第一方面或第一方面中任一种可能实现方式中的方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能实现方式中的方法。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括:计算机程序(也可以称为代码,或指令),当该计算机程序被处理器运行时,使得计算机执行上述第一方面或第一方面中任一种可能实现方式中的方法。
本申请提供的应用项目的结构配置方法、装置及可读存储介质中,可以将自动代码生成器的Java代码配置方式转换成配置文件的配置方式,而无需逐行编写代码,使应用开发项目实现代码与配置分离。能够降低开发成本,提高开发效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的应用场景的示意图;
图2为MyBatis-Plus自动代码生成器编写自定义的项目结构的示意性流程图;
图3为本申请实施例提供的应用项目的结构配置方法的一个示意性流程图;
图4为本申请实施例提供的第一用户界面的一个示意图;
图5为本申请实施例提供的第一用户界面的另一个示意图;
图6为本申请实施例提供的多个架构层的路径结构的示意图;
图7为MyBatis-Plus自动代码生成器生成的默认项目结构的示意图;
图8为本申请实施例提供的自定义项目结构代码生成器的封装结构图;
图9为本申请实施例提供的第二用户界面的一个示意图;
图10为本申请实施例提供的第二用户界面的另一个示意图;
图11为本申请实施例提供的应用项目的结构配置装置的结构示意图;
图12为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为本申请实施例提供的应用场景的示意图。
如图1所示,该应用场景可以包括电子设备101,该电子设备101可以运行代码生成器102的软件程序包,例如,该电子设备101的存储器中存储了该代码生成器102的软件程序包,或者,代码生成器102的软件程序包可以存储于可读存储介质中,电子设备101可以读取该可读存储介质,电子设备101可以运行该代码生成器。该代码生成器可以用于应用项目开发,用户可以通过交互界面输入操作指令,以实现应用项目的开发。例如,网站、应用程序等软件的开发。该电子设备可以执行本申请提供的方法,实现用户自定义应用项目的项目结构。
下面对本申请实施例涉及的相关技术及术语进行介绍。
Java:Java是一门面向对象高级程序设计语言。
MyBatis-Plus代码生成器:是一款开源的Java程序代码生成器,可以帮助开发快速构建项目基础代码。
属性(Properties)配置文件:是一种以键-值对形式存储数据的文件格式。
API是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于软件或硬件得以访问的一组例程,无需访问源码,或者说无需理解内部工作机制的细节。
映射(Mapper)可扩展标识语言(Extensive Markup Language,XML):用于配置、编写数据库数据和Java对象之间的转换配置,及请求数据库需要的结构化查询语言(Structured Query Language,SQL)语句。
数据访问对象(Data Access Object,DAO)层:是一个面向对象的数据库接口,作为Java项目与数据库之间进行数据交互的桥梁。
实体(Entity)层:与数据库表对应的Java类,用于在应用系统运行时保存数据库的数据的载体。
业务(Service)层:主要负责业务模块的逻辑应用设计。
控制器(Controller)层:是用户项目服务器请求数据的控制转发中心,向应用系统请求数据的入口。Controller层负责具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程。
在较早时期,Java应用项目开发中开发人员通常需要手动编写项目基础代码,例如:DAO数据访问对象代码、Entity数据实体代码、Mapper XML基础数据库访问语句,Service项目业务代码、Controller业务流程的控制代码等这些代码的基础框架等,然后才开始编写应用项目系统的核心业务逻辑代码。这些项目文件通常是与数据库表是对应,如果系统有几十张数据表甚至上百张数据表组成,那么这些Java文件的数量通常是数据表的好几倍,因此开发人员将会消耗大量的时间创建和编写这些文件,而这些工作往往又是机械化、极易出错的,导致开发效率低下。
MyBatis-Plus代码生成器可以能够提高开发效率。开发人员只需要在项目中引入相关功能,并根据相关文档编写程序代码完成相关配置等,然后,执行运行程序操作并输入参数,MyBatis-Plus代码生成器能够快速生成Entity、Mapper、Mapper XML、Service、Controller等各个架构层的代码。
然而,当开发人员根据需求需要自定义代码路径结构时,开发人员仍需要通过编写Java代码的方式,在代码逻辑中来配置所需的结构。这使得开发人员需要学习相应的配置逻辑以及相关的API的使用方法才能完成配置。增加了软件开发的时间成本,效率较低。
例如,若开发人员利用MyBatis-Plus代码生成器编写自定义的项目结构,流程可以如图2所示,首先,开发人员需要编写一个程序主类,用于运行代码生成逻辑,接着开始完成代码生成器的编写。开发人员可以在S201中创建自动生成器(AutoGenerator)对象,AutoGenerator对象是代码生成器的控制中心,所有的配置都需要由开发人员注入AutoGenerator,并通过AutoGenerator对象提供的执行(execute)方法运行代码生成逻辑。在运行代码生成逻辑之前,还需要一系列的逻辑配置。开发人员在S202中创建全局配置(GlobalConfig)对象,GlobalConfig对象主要用于配置代码输出路径和作者等基础信息,但是GlobalConfig对象输出的路径是针对全局的一个统一路径结构,并不能由开发人员针对单个类型文件指定路径。开发人员在S203中创建数据源配置(DataSourceConfig)类对象,该DataSourceConfig类用于配置数据源地址账号密码等信息,以实现和数据库的连接,以及在S204中创建包配置(PackageConfig)类对象,PackageConfig类对象用于配置代码生成的包路径,PackageConfig类对象输出的路径同样是统一路径结构。而开发人员可以通过注入配置(InjectConfig)类对象来自定义各类文件的路径结构及需要依赖的模板等,根据生成文件的类型不同,需要创建一些文件输出配置(FileOutConfig)对象,以指定各类文件的生成路径。开发人员可以在S206中创建策略配置(StrategyConfig)类,StrategyConfig用于配置生成代码内容的规则,开发人员再编写一个开发人员输入接收器,用来接收一些需要程序与开发人员交互的必要参数。电子设备响应于开发人员调用AutoGenerator对象的excute方法的操作,电子设备运行代码生成逻辑,使得程序运行,在S208中,电子设备运行程序过程中,可以获取由开发人员输入的模块名称及需要生成的模块的参数,生成代码,可以生成自定义路径结构的模块。
由此可知,Mybaties-Plus自动代码生成器虽然实现了自定义应用项目的路径结构,但是如上所述,开放人员需要编写一系列配置对象的代码逻辑。这需要开发人员学习配置API的使用方式,理解其配置间的逻辑关系,才能完成自动代码生成器的开发。因此,自定义应用项目的路径结构需要开发人员大量的时间成本,开发效率较低。本申请提出可以将配置与代码解耦,通过将MyBatis-Plus自动代码生成器的Java代码配置方式转换成配置文件的配置方式,使代码与配置分离,实现Java编码更加简单,开发人员只需要编写主程序并调用一个API即可。能够降低开发成本,提高开发效率。
下面结合附图对本申请实施例提供的应用项目的结构配置方法进行说明。
实施例一
图3是本申请实施例提供的应用项目的结构配置方法的一个示意性流程图。下文中,以电子设备执行图3所示的应用项目的结构配置方法为例进行介绍,但本申请不限于此。
S301,电子设备接收来自用户的创建项目结构配置文件的操作,该项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构。
其中,路径结构也可以称为目录结构,本申请对此不做限定。用户可以在应用项目中执行创建项目结构配置文件的操作,电子设备接收到来自用户的该操作。
可选地,用户可以触发电子设备运行代码生成器程序以及触发电子设备加载并运行自定义项目结构程序包,用户执行创建项目结构配置文件的操作,由电子设备接收来自用户的该操作后,执行S302。
作为示例非限定,应用项目可以是待开发的软件,如待开发的网站,待开发的应用程序等。
作为示例非限定,该项目结构配置文件为Properties配置文件。
S302,电子设备响应于创建项目结构配置文件的操作,显示第一用户界面,该第一用户界面包括多个路径结构配置项,该多个路径结构配置项对应该多个架构层。
例如,该第一用户界面可以如图4所示,该第一用户界面可以包括如图4所示的属性(properties)配置文件对话框,或者该对话框还可以称为是项目结构配置文件对话框,本申请不限于此。该properties配置文件对话框可以包括多个路径结构配置项,如图4所示的路径项目结构配置项1、2、3。其中,路径项目结构配置项1可以是dao层对应的路径结构配置项,例如,路径项目结构配置项1可以是dao层对应的路径结构配置项,可以记作“dao:com.___.dao”;路径项目结构配置项2可以是entity层对应的路径结构配置项,例如,可以记作“entity:com.___.entity”;路径项目结构配置项3以是sevice层对应的路径结构配置项,例如,可以记作“service:com.___.sevice”。在每个路径结构配置项中,“___”可以用于用户输入路径结构信息。该第一用户界面还可以包括数据源配置项,该数据源配置项用于配置数据源与数据库建立连接。该第一用户界面还可以包括代码生成器的其他配置项,用于配置代码生成器的其他参数,本申请对此不做限定。
S303,电子设备响应于用户在第一路径结构配置项输入第一路径结构信息,在第一用户界面显示第一路径结构信息,其中,多个路径结构项包括该第一路径结构配置项。
用户可以在第一路径结构配置项中输入第一路径结构信息,响应于用户的该输入操作,电子设备在第一用户界面显示该第一路径结构信息。
例如,该第一路径结构配置项为如图4所示的dao层对应的路径结构配置项“dao:com.___.dao”,用户对该路径结构配置项中输入用户对dao层自定义的路径结构信息,如“xxx.xxx”后,电子设备接收到用户输入的该信息后,将该路径结构信息显示在第一用户界面,则显示界面上显示的该第一路径结构配置项可以为dao:com.xxx.xxx.dao。
可选地,第一架构层包括但不限于以下一项或多项:
数据访问对象dao层,用于为对象提供数据库接口;
实体Entity层,用于保存数据库的实体类;
映射可扩展标识语言Mapper XML层:用于配置数据库数据和对象之间的转换配置,以及请求数据库需要的结构化查询语言SQL语句;
业务Service层,用于业务块的逻辑应用设计;
控制器Controller层,用于业务块流程的控制。
S304,电子设备生成项目结构配置文件,该项目结构配置文件包括该第一路径结构信息。
一种实施方式中,电子设备可以接收来自用户的存储项目结构配置文件的操作,响应于该操作,电子设备生成项目结构配置文件,该项目结构配置文件包括用户输入的第一路径结构信息。
例如,用户对一个或多个路径结构配置项输入路径结构信息,并完成数据源配置后,可以执行存储项目结构配置文件的操作,响应于该操作,电子设备生成项目结构配置文件。该项目结构配置文件中包括用户输入的配置信息,如第一路径结构信息以及数据源配置信息等,但本申请不限于此。
另一种实施方式中,电子设备可以在接收到用户输入路径结构信息和/或数据源配置信息后的预设时间间隔后,生成项目结构配置文件。该项目结构配置文件包括用户输入的第一路径结构信息和/或用户输入的数据源配置信息。
另一种实施方式中,第一用户界面包括项目结构配置文件对话框和生成器代码文件对话框。用户在项目结构配置文件对话框完成输入项目结构配置信息后,在生成器代码文件对话框执行调用项目结构配置文件的操作,电子设备响应于该调用项目结构配置文件的操作,生成项目结构配置文件,该项目结构配置文件包括用户输入的第一路径结构信息和/或用户输入的数据源配置信息。
例如图5所示,第一用户界面包括属性配置文件对话框(即项目结构配置文件对话框的一个示例)和Java生成器代码文件对话框。
用户可以在属性配置文件对话框中输入自定义的dao层的路径结构信息为xxx.xxx,entity层的路径结构信息为yyy.yyy,service层的路径结构信息为zzz.zzz。则该多个路径结构配置项目可以如下:
dao:com.xxx.xxx.dao;
entity:com.yyy.yyy.entity;
service:com.zzz.zzz.service;
在用户完成向属性配置文件输入配置信息后,用户在Java生成器代码文件对话框输入调用项目结构配置文件语句,如用户创建AutoGenerator启动类,并通过NewGenerator(“config.properties”).run()调用属性配置文件,该生成器代码文件对话框中的代码段1可以如下所示,但本申请不限于此。
Figure BDA0003137318480000101
Figure BDA0003137318480000111
响应于用户调用项目结构配置文件的操作(例如,输入调用语句),电子设备可以执行S305,生成该项目结构配置文件。
S305,电子设备响应于来自用户的调用该项目结构配置文件的操作,生成该多个架构层的路径结构,其中,第一架构层的路径结构是基于第一路径结构信息生成的,该第一架构层为该多个架构层中与第一路径结构配置项对应的架构层。
例如,用户在S303中输入的自定义的dao层、entity层的路径结构信息均为domain.manager,xml层的路径结构信息为domain.resource,service层、controller层的路径结构信息均为web,则第一界面上显示的dao层、entity层xml层、service层、controller层对应的路径结构配置项分别如下:
dao:com.domain.manager.dao;
entity:com.domain.manager.entity;
xml:com.domain.resource.xml;
service:com.web.Service;
controller:com.web.controller;
用户在Java生成器代码文件对话框中输入调用项目结构配置文件的调用语句,响应于该操作,电子设备基于包含用户输入的路径结构信息的属性配置文件,生成该项目架构,即该多个架构层的路径结构。该多个架构层的路径结构可以如图6所示,其中,项目功能模块1为域(domain)功能模块,该模块下包括管理(manager)和资源(resource)一级子目录。其中,一级子目录manager下包括二级子目录,实体(entity)和DAO子目录,该entity子目录中包括用户实体java文件(UserEntity.java),该DAO子目录中包括用户DAO java文件(UserDAO.java)。项目功能模块2为网络(web)功能模块,包括业务(service)和控制器(controller)一级子目录,其中,sevice一级子目录下包括用户业务java文件(UserService.java),controller一级子目录下包括用户控制器java文件(UserController.java)。
基于自动代码生成器(如mybatis-plus自动代码生成器)生成的默认项目结构中,所有的架构层均在一个项目模块下并且目录结构比较固定,例如图7所示。若想要自定义路径结构还需要逐行编写Java代码。根据本申请的方案,能够实现用户灵活自定义项目结构,例如图6所示,可以将xml文件和java文件进行分离,分别统一管理,甚至同类型的代码模块可以分布在不同的项目模块。例如图6所示,entity层和dao层的java文件可以分布在项目功能模块1,即domain项目模块中。而service层的java文件可以分布在项目功能模块2,即web项目模块中。实现灵活项目架构、文件分类管理,仅需要用户在Properties配置文件对话框中输入路径结构信息,并编写调用语句即可实现电子设备生成用户自定义的项目结构(即多个架构层的自定义路径结构),无需用户编写逐行编写代码,实现了配置与代码解耦,大大降低了开发的时间成本。
实施例二
在本实施例中,与实施例一相同的部分可以参考实施例一中的描述,为了简要,在此不再赘述。
上述S305中电子设备响应于来自用户的调用该项目结构配置文件的操作,生成该多个架构层的路径结构,可以包括:
电子设备响应于来自用户的调用该项目结构配置文件的操作,通过properties工具类解析项目结构配置文件,读取该项目结构配置文件中的第一路径结构信息,并将该第一路径结构信息转换为自动代码生成器兼容的路径结构参数。电子设备基于该路径结构参数和自动代码生成器,生成所述第一架构层的路径结构。
作为示例非限定,该自动代码生成器可以是Mybatis-plus自动代码生成器。
作为示例非限定,properties工具类可以包括Java.util.Properties工具类。
例如,电子设备可以通过Java.util.Properties工具类解析项目结构配置文件,读取该项目结构配置文件中的第一路径结构信息到内存中。
可选地,上述电子设备基于该路径结构参数和自动代码生成器,生成所述第一架构层的路径结构,可以包括:
电子设备采用反射技术,获取自动代码生成器中第一架构层对应的第一类成员变量,并基于上述路径结构参数配置该第一类成员变量后得到第二类成员变量。电子设备再采用反射技术,将所述第二类成员变量输入所述自动代码生成器,并获取该自动代码生成器输出的第一架构层的路径结构。
例如,电子设备可以基于Java.util.Properties工具类解析项目结构配置文件,读取该项目结构配置文件中多个架构层的路径结构信息到内存,该多个架构层的路径结构信息包括第一架构层的路径结构信息。电子设备将该多个架构层的路径结构信息转换为自动代码生成器兼容的路径结构配置参数,电子设备采用反射技术获取自动代码生成器中多个架构层对应的类成员变量,并根据该多个架构层的路径结构配置参数分别配置相应地类成员变量,得到多个架构层对应的配置后的类成员变量,输入自动代码生成器并获取自动代码生成器输出的项目架构,即多个架构层的路径结构,该多个架构层的结构包括第一架构层的路径结构。
由于自动代码生成器并没有对外暴露项目路径结构存储配置的类成员变量,电子设备通过反射技术可以实现提取和注入自动代码生成器的私有类成员变量,以实现灵活的配置自定义的项目结构。
可选地,若电子设备生成该项目结构配置文件之前未接收到用户对第二路径结构配置项输入的路径结构信息,电子设备生成第二架构层的预定义路径结构,其中,该第二架构层为该多个架构层中除该第一架构层以外的架构层,所述第二架构层与所述第二路径结构配置项相对应。
例如,电子设备可以基于Java.util.Properties工具类解析项目结构配置文件,若未解析用户输入的第二架构层的路径结构信息,则电子设备可以获取自动代码生成器输出的第二架构层的预定义路径结构(或称为默认路径结构)。
在用户对某一个架构层没有自定义需求的情况下,电子设备可以基于自动代码生成器的默认配置生成该架构层的路径结构。
实施例三
本实施例提供了一种自定义项目结构的代码生成器的封装结构。例如图8所示,该自定义项目结构的代码生成器包括对外功能接口单元801、数据配置单元802、核心封装单元803和Mybatis-plus自动代码生成器804。
其中,外功能接口单元用于开发人员编写主程序,并调用该对外接口单元提供的API完成代码生成。数据配置单元用于通过Java.util.Properties工具类解析项目结构配置文件,读取路径结构信息到内存中,由核心封装层进行数据处理。该核心封装单元是对MyBatis-Plus自动代码生成器的核心封装逻辑,通过将数据配置单元解析得到的架构层的路径结构信息转换成Mybatis-plus自动代码生成器可以兼容的路径结构参数,将转换得到的架构层对应的路径结构参数输入至MyBatis-Plus自动代码生成器。核心封装单元的功能实现可以采用Java的反射技术,通过反射技术可以实现从MyBatis-Plus自动代码生成器提取和或向MyBatis-Plus自动代码生成器注入类成员变量,以实现灵活的配置自定义的项目结构。MyBatis-Plus自动代码生成器获取到由核心封装单元输入的架构层的路径结构参数后,通过生成结构产生的参数调用MyBatis-Plus自动代码生成器内部代码及模板引擎,生成相应的项目架构代码、以及项目架构,即多个架构层的路径结构。
实施例四
用户在实施例一中的S305中可以执行调用该项目结构配置文件的操作,例如,用户可以编写代码调用图8所示的对外接口单元提供的API。但本申请不限于此。响应于用户调用该项目结构配置文件的操作,电子设备还可以为用户提供基于用户需求在多种生成文件模式中选择一种生成文件模式的功能,该多种生成文件模式可以包括生成全部类型的文件的模式以及生成部分类型的文件的模式。电子设备可以响应于用户的选择操作,电子设备进入相应的生成部分或全部文件的模式。
示例性地,响应于用户调用该项目结构配置文件的操作,电子设备显示第二用户界面。该第二用户界面可以包括选择生成文件模式的可输入项,用户可以在该可输入项中输入用户选择的生成文件模式,使得电子设备能够响应于用户输入的生成文件模式,最终生成相应的文件。
例如图9所示,该第二用户界面可以包括提示信息,如生成文件模式的可选模式1、2、3。其中,可选模式1为生成全部类型的文件,例如,全部类型的文件包括service、logic、dao、entity和xml类型的文件。可选模式2为生成A、B、C类型的文件。例如,A、B、C类型的文件可以是entity、xml和dao类型的文件。可选模式2为生成A、B类型的文件。例如,A、B类型的文件可以是entity和xml类型的文件。该第二用户界面包括选择生成文件模式的可输入项,例如图9所示的“请输入编号选择生成文件模式(其他任意输入将退出):”,用户可以在该可输入项后输入用户所需的生成文件模式的编号,例如用户可以输入1,表示用户选择生成全部文件类型的模式。但本申请不限于此。
可选地,电子设备还可以生成用户自定义的文件名称的文件。
例如,该第二用户界面包括用户自定义文件名称的可输入项,用户可以在该可输入项中输入用户自定义的名称,如图10所示的第二用户界面,该用户自定义文件名称的可输入项为“请用户输入自定义实体名:”,用户可以在该可输入项中输入自定义的实体名称,响应于用户的输入操作,电子设备在第二界面显示用户输入的自定义实体名称。例如,用户输入的自定义的实体名称为Resource,响应于用户的输入操作,电子设备在第二界面显示用户输入的自定义实体名称。并且电子设备在执行该程序后可以生成实体文件ResourceEntity.java,其名称为用户自定义的Resource。但本申请不限于此,图10仅以用户自定义实体(entity)文件名称为例进行说明,用户还可以自定义dao、xml等其他文件类型的文件的名称。
根据本申请提供的方案,电子设备能够生成用户自定义的文件名称的文件,提高了应用项目开发的灵活性。
可选地,如图10所示该第二用户界面还包括模板名称的可输入项以及数据库表名的可输入项,用户可以在模板名称可输入项中输入模板名称,例如,用户输入的模板名称为sys,以及用户可以在数据库名的可输入项中输入数据库表名称,例如,用户输入的数据库表名为sys_resource。
可选地,电子设备重复执行生成表实体的程序,电子设备可以连续生成多张表实体。
根据上述方案,电子设备重复执行生成表实体的程序,可以连续生成多张表实体,能够提高开发的效率。
图11为本申请实施例提供的应用项目的结构配置装置的结构示意图。
如图11所示,该应用项目的结构配置装置包括获取单元1110、显示单元1120和处理单元1130。
获取单元1110,用于获取来自用户创建项目结构配置文件的操作,该项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构;
显示单元1120,用于响应于该创建项目结构配置文件的操作,显示用户界面,该用户界面包括多个路径结构配置项,该多个路径结构配置项对应该多个架构层;
该显示单元1120还用于响应于用户在第一路径结构配置项输入第一路径结构信息,在该用户界面显示该第一路径结构信息,其中,该多个路径结构配置项包括该第一路径结构配置项;
处理单元1130,生成该项目结构配置文件,该项目结构配置文件包括该第一路径结构信息;
该处理单元1130还用于响应于用户的获取应用项目的架构的操作,调用该项目结构配置文件,生成该多个架构层的路径结构,其中,第一架构层的路径结构是基于该第一路径结构信息生成的,该第一架构层为该多个架构层中与该第一路径结构配置项对应的架构层。
可选地,该处理单元1130具体用于:通过属性工具类解析该项目结构配置文件,读取该第一路径结构信息;将该第一路径结构信息转换为路径结构参数,该路径结构参数为代码生成器兼容的参数;基于该路径结构参数和该代码生成器,生成该第一架构层的路径结构。
可选地,该处理单元1130具体用于:采用反射技术,获取该代码生成器中该第一架构层对应的第一类成员变量;采用该路径结构参数配置该第一类成员变量后得到第二类成员变量;采用反射技术,将该第二类成员变量输入该代码生成器;获取该代码生成器输出的该第一架构层的路径结构。
可选地,该第一架构层包括以下一项或多项:
数据访问对象层,用于为对象提供数据库接口;
实体层,用于保存数据库的实体类;
映射可扩展标识语言层:用于配置数据库数据和对象之间的转换关系,以及请求数据库所需的结构化查询语言SQL语句;
业务层,用于业务块的逻辑应用设计;
控制器层,用于业务块流程的控制。
可选地,该处理单元1130还用于运行代码生成器主类;该获取单元1110还用于获取用户输入的项目模块的名称以及该项目模块的参数;该处理单元1130还用于基于该项目模块的名称、该项目模块的参数以及该多个架构层的路径结构,生成该项目模块。
可选地,该处理单元1130具体用于生成第二架构层的预定义路径结构,其中,该第二架构层为该多个架构层中除该第一架构层以外的架构层,该第二架构层与该第二路径结构配置项相对应。
图12为本实施例提供的一种电子设备1200的结构示意图,如图12所示,该电子设备1200可以为上述实施例中所述的移动信贷客户端或者移动信贷服务器,该电子设备1200包括:存储器1210和至少一个处理器1220;
存储器1210,用于存储计算机执行指令;
处理器1220,用于执行该存储器存储的计算机执行指令,使得该电子设备执行上述实施例中的方法。具体实现原理可参见上述实施例,本实施例此处不再赘述。
该电子设备还可以包括及输入/输出接口1230。
输入/输出接口1230可以包括独立的输出接口和输入接口,也可以为集成输入和输出的集成接口。其中,输出接口用于输出数据,输入接口用于获取输入的数据。
本申请实施例还提供了一种处理装置,包括处理器和(通信)接口;所述处理器用于执行上述任一方法实施例中的方法。
应理解,上述处理装置可以是一个或多个芯片。
本实施例还提供一种计算机程序产品,该程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的方法。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该程序代码由一个或多个处理器运行时,使得包括该处理器的装置执行上述任一方法实施例中的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (15)

1.一种应用项目的结构配置方法,其特征在于,
接收来自用户创建项目结构配置文件的操作,所述项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构;
响应于所述创建项目结构配置文件的操作,显示用户界面,所述用户界面包括多个路径结构配置项,所述多个路径结构配置项对应所述多个架构层;
响应于用户在第一路径结构配置项输入第一路径结构信息,在所述用户界面显示所述第一路径结构信息,其中,所述多个路径结构配置项包括所述第一路径结构配置项;
生成所述项目结构配置文件,所述项目结构配置文件包括所述第一路径结构信息;
响应于用户的获取应用项目的架构的操作,调用所述项目结构配置文件,生成所述多个架构层的路径结构,其中,第一架构层的路径结构是基于所述第一路径结构信息生成的,所述第一架构层为所述多个架构层中与所述第一路径结构配置项对应的架构层。
2.根据权利要求1所述的方法,其特征在于,所述生成所述多个架构层的路径结构,包括:
通过属性工具类解析所述项目结构配置文件,读取所述第一路径结构信息;
将所述第一路径结构信息转换为路径结构参数,所述路径结构参数为代码生成器兼容的参数;
基于所述路径结构参数和所述代码生成器,生成所述第一架构层的路径结构。
3.根据权利要求2所述的方法,其特征在于,所述基于所述路径结构参数和所述代码生成器,生成所述第一架构层的路径结构,包括:
采用反射技术,获取所述代码生成器中所述第一架构层对应的第一类成员变量;
采用所述路径结构参数配置所述第一类成员变量后得到第二类成员变量;
采用反射技术,将所述第二类成员变量输入所述代码生成器;
获取所述代码生成器输出的所述第一架构层的路径结构。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一架构层包括以下一项或多项:
数据访问对象层,用于为对象提供数据库接口;
实体层,用于保存数据库的实体类;
映射可扩展标识语言层:用于配置数据库数据和对象之间的转换关系,以及请求数据库所需的结构化查询语言SQL语句;
业务层,用于业务块的逻辑应用设计;
控制器层,用于业务块流程的控制。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
运行代码生成器主类;
接收用户输入的项目模块的名称以及所述项目模块的参数;
基于所述项目模块的名称、所述项目模块的参数以及所述多个架构层的路径结构,生成所述项目模块。
6.根据权利要求1至3中任一项所述的方法,其特征在于,
若生成所述项目结构配置文件之前未接收到用户对第二路径结构配置项输入的路径结构信息,所述生成所述多个架构层的路径结构,包括:
生成第二架构层的预定义路径结构;
其中,所述第二架构层为所述多个架构层中除所述第一架构层以外的架构层,所述第二架构层与所述第二路径结构配置项相对应。
7.一种应用项目的结构配置装置,其特征在于,包括:
获取单元,用于获取来自用户创建项目结构配置文件的操作,所述项目结构配置文件用于配置应用项目的架构中多个架构层的路径结构;
显示单元,用于响应于所述创建项目结构配置文件的操作,显示用户界面,所述用户界面包括多个路径结构配置项,所述多个路径结构配置项对应所述多个架构层;
所述显示单元还用于响应于用户在第一路径结构配置项输入第一路径结构信息,在所述用户界面显示所述第一路径结构信息,其中,所述多个路径结构配置项包括所述第一路径结构配置项;
处理单元,生成所述项目结构配置文件,所述项目结构配置文件包括所述第一路径结构信息;
所述处理单元还用于响应于用户的获取应用项目的架构的操作,调用所述项目结构配置文件,生成所述多个架构层的路径结构,其中,第一架构层的路径结构是基于所述第一路径结构信息生成的,所述第一架构层为所述多个架构层中与所述第一路径结构配置项对应的架构层。
8.根据权利要求7所述的装置,其特征在于,所述处理单元具体用于:
通过属性工具类解析所述项目结构配置文件,读取所述第一路径结构信息;
将所述第一路径结构信息转换为路径结构参数,所述路径结构参数为代码生成器兼容的参数;
基于所述路径结构参数和所述代码生成器,生成所述第一架构层的路径结构。
9.根据权利要求8所述的装置,其特征在于,所述处理单元具体用于:
采用反射技术,获取所述代码生成器中所述第一架构层对应的第一类成员变量;
采用所述路径结构参数配置所述第一类成员变量后得到第二类成员变量;
采用反射技术,将所述第二类成员变量输入所述代码生成器;
获取所述代码生成器输出的所述第一架构层的路径结构。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述第一架构层包括以下一项或多项:
数据访问对象层,用于为对象提供数据库接口;
实体层,用于保存数据库的实体类;
映射可扩展标识语言层:用于配置数据库数据和对象之间的转换关系,以及请求数据库所需的结构化查询语言SQL语句;
业务层,用于业务块的逻辑应用设计;
控制器层,用于业务块流程的控制。
11.根据权利要求7至9中任一项所述的装置,其特征在于,
所述处理单元还用于运行代码生成器主类;
所述获取单元还用于获取用户输入的项目模块的名称以及所述项目模块的参数;
所述处理单元还用于基于所述项目模块的名称、所述项目模块的参数以及所述多个架构层的路径结构,生成所述项目模块。
12.根据权利要求7至9中任一项所述的装置,其特征在于,
所述处理单元具体用于在生成所述项目结构配置文件之前未接收到用户对第二路径结构配置项输入的路径结构信息的情况下,生成第二架构层的预定义路径结构,
其中,所述第二架构层为所述多个架构层中除所述第一架构层以外的架构层,所述第二架构层与所述第二路径结构配置项相对应。
13.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6中任一项所述的方法。
15.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
CN202110724517.5A 2021-06-29 2021-06-29 应用项目的结构配置方法、装置及可读存储介质 Pending CN113342399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110724517.5A CN113342399A (zh) 2021-06-29 2021-06-29 应用项目的结构配置方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110724517.5A CN113342399A (zh) 2021-06-29 2021-06-29 应用项目的结构配置方法、装置及可读存储介质

Publications (1)

Publication Number Publication Date
CN113342399A true CN113342399A (zh) 2021-09-03

Family

ID=77481331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110724517.5A Pending CN113342399A (zh) 2021-06-29 2021-06-29 应用项目的结构配置方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN113342399A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858012A (zh) * 2022-12-30 2023-03-28 广州市易鸿智能装备有限公司 程序变量配置方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858012A (zh) * 2022-12-30 2023-03-28 广州市易鸿智能装备有限公司 程序变量配置方法、装置、电子设备及存储介质
CN115858012B (zh) * 2022-12-30 2023-10-20 广州市易鸿智能装备有限公司 程序变量配置方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110825362B (zh) 低代码应用软件开发系统及方法
US10592319B2 (en) API notebook tool
CN109597661B (zh) 一种业务功能配置方法及装置
CN112748908B (zh) 基于SSM框架的Restful服务开发方法与装置
US9904522B2 (en) Web development system
US9465590B2 (en) Code generation framework for application program interface for model
US8997070B2 (en) Extension mechanism for scripting language compiler
US10649742B2 (en) Computing expression medium, development environment, and device communication and control architecture
US9021419B2 (en) System and method for supporting intelligent design pattern automation
US8615750B1 (en) Optimizing application compiling
CN110912724A (zh) 一种基于参数驱动的自动业务编排方法及装置
Fill SeMFIS: a flexible engineering platform for semantic annotations of conceptual models
CN106648587A (zh) 一种基于注解的Web应用代码生成方法
CN112860238A (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN111414350A (zh) 一种服务生成方法及装置
CN113342399A (zh) 应用项目的结构配置方法、装置及可读存储介质
KR101902191B1 (ko) 질의 기반 소프트웨어 논리의 동적 변경 및 실행을 위한 멀티테넌트 지원 장치 및 방법
CN114489619A (zh) 一种界面视图显示方法及终端设备、计算机可读存储介质
CN111459583A (zh) 一种菜单创建方法及装置
CN113608726B (zh) 代码生成方法、装置、电子设备及存储介质
CN117311799B (zh) 一种软件项目页面的配置方法
CN114679366B (zh) 多云环境下面向租户开放运维工具的方法、系统及介质
Del Sole et al. Building Cross-Platform Apps with Xamarin. Forms
CN117195239A (zh) 微应用资源包生成方法、装置、计算机设备和存储介质
CN116502005A (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