CN112181398A - 配置文件处理装置、方法及存储介质 - Google Patents
配置文件处理装置、方法及存储介质 Download PDFInfo
- Publication number
- CN112181398A CN112181398A CN201910510257.4A CN201910510257A CN112181398A CN 112181398 A CN112181398 A CN 112181398A CN 201910510257 A CN201910510257 A CN 201910510257A CN 112181398 A CN112181398 A CN 112181398A
- Authority
- CN
- China
- Prior art keywords
- configuration file
- code
- configuration
- generating
- constant
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种配置文件处理装置、方法及存储介质,属于互联网技术领域。该配置文件处理装置包括提取模块、代码生成模块和存储模块,通过读取指定配置文件中的关键词;并根据关键词生成与配置文件对应的配置代码;而后将配置代码存储在预设文件中。由此简化开发人员的工作,同时可以避免不必要的错误,且本发明的配置文件处理装置、方法及存储介质,其实现方式简便,应用成本低廉,应用范围也十分广泛。
Description
技术领域
本发明涉及互联网技术领域,特别涉及互联网应用软件开发技术领域,具体是指一种配置文件处理装置、方法及存储介质。
背景技术
在应用软件开发过程中,软件需要面对不同的运行环境,比如开发环境、测试环境、生产环境。而软件在不同的环境中,有的配置可能需要进行调整,比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置,通常会将需要修改的常量做成一个配置文件,利用程序读取这个配置文件来使得软件适应相应的环境。
但是在应用软件开发过程中这些配置成为软件代码中的变量,会根据需求不停地更改、增加、删除,造成读取这些变量的代码也要随之不停地更改,这不仅造成了工作量的增加,也容易出现人为的错误。如图简化开发过程中的这一过程,便于软件开发人员使用,可以避免出现不必要的错误的配置文件读取方法成为本领域亟待解决的问题。
Maven是一个项目管理工具,它包含了一个项目对象模型(Project ObjectModel),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。使用Maven,可以用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种通过利用Maven插件,自动分析配置文件生成配置文件读取的代码,然后在Maven工程的编译过程中,插件即可生成配置文件的相关代码,从而简化开发人员的工作,同时可以避免不必要的错误,且实现方式简便,应用成本低廉的自动生成读取配置文件的配置文件处理装置、方法及存储介质。
为了实现上述的目的,本发明的配置文件处理装置包括提取模块、代码生成模块和存储模块。
其中,提取模块用于读取指定配置文件中的关键词;代码生成模块用于根据所述关键词,生成与所述配置文件对应的配置代码;存储模块用于将所述配置代码存储在预设文件中。
该配置文件处理中,所述装置运行有Maven插件;并利用该Maven插件实现所述的提取模块、代码生成模块和存储模块。
该配置文件处理中,所述Maven插件嵌入并适配Maven工程编译过程,在所述的Maven工程编译过程中,运行所述的Maven插件。
该配置文件处理中,所述的配置文件为数据源配置文件和/或日志文件配置文件。
该配置文件处理中,所述的关键词为常量的名称。
该配置文件处理中,所述根据所述关键词,生成与所述配置文件对应的配置代码,具体包括:
读取当前配置文件中定义的常量;生成获取当前配置文件中每个常量的代码。
该配置文件处理中,所述根据所述关键词,生成与所述配置文件对应的配置代码,具体还包括:
当所述的当前配置文件中具有重名的常量时,发出提示。
该配置文件处理中,所述的生成获取当前配置文件中每个常量的代码,具体为:
根据代码模板生成与该模板对应种类的代码,该代码用以获取当前配置文件中每个常量的代码。
本发明还提供一种配置文件处理方法,其包括以下步骤:
读取指定配置文件中的关键词;
根据所述关键词,生成与所述配置文件对应的配置代码;
将所述配置代码存储在预设文件中。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述的配置文件处理方法。
采用了该发明的配置文件处理装置、方法及存储介质,其通过读取指定配置文件中的关键词;并根据所述关键词,生成与所述配置文件对应的配置代码;而后将配置代码存储在预设文件中。由此简化开发人员的工作,同时可以避免不必要的错误,且本发明的配置文件处理装置、方法及存储介质,其实现方式简便,应用成本低廉,应用范围也十分广泛。
附图说明
图1为本发明的配置文件处理装置的结构示意图。
图2为本发明的配置文件处理方法的步骤流程图。
图3为本发明的的配置文件处理方法的实施例2的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
实施例1
在应用软件开发过程中,软件需要面对不同的运行环境,比如开发环境、测试环境、生产环境。在不同的环境中,有的配置可能需要进行调整,这些需要调整的配置成为软件代码中的变量,会根据需求不停地更改、增加、删除。例如,软件中定义了一个log的常量,软件代码中如果需要使用它,需要知道这个常量的对应环境中的名字才能用,在有些环境中,该常量名称就是log,那软件代码中该常量就是“log”。但是,一旦在有些环境中,同样的常量名称改为了log2,如果软件代码不作出相应的改变,就会出现问题。这就需要当软件应用于这一环境时,将代码修改成log2。现有技术需要开发人员主动修改,非常麻烦。
本发明提供了一种配置文件处理装置,如图1所示,其包括:
提取模块,用于读取指定配置文件中的关键词;
代码生成模块,用于根据所述关键词,生成与所述配置文件对应的配置代码;
存储模块,用于将所述配置代码存储在预设文件中。
所述装置运行有Maven插件;并利用该Maven插件实现所述的提取模块、代码生成模块和存储模块。所述Maven插件嵌入并适配Maven工程编译过程,在所述的Maven工程编译过程中,运行所述的Maven插件。
Maven工程是java项目的中一种项目工程规范,目前大多数java项目均采用Maven工程规范,本发明所提供的Maven工程插件可以在大多数java项目中应用。
另外,需要对pom.xml文件进行相应的操作。pom.xml文件是Maven工程的配置文件,所述的Maven工程插件需要添加到pom.xml文件中。
具体而言,该Maven插件中包括具有所述配置信息的类。插件类是指,一个插件的代码,这个代码以类为单位。
当进行Maven编译的时候,Maven插件会被唤醒,唤醒方式可以类似于轮询机制,然后,自然而然地,代码就生成并存储于Maven工程代码文件夹下了。
所述的配置文件(env.properties文件)为数据源配置文件和/或日志文件配置文件。所述的配置信息为常量名称,例如“log”,所述的配置内容为常量。
其中,生成软件代码的过程具体如图2所示为:读取指定配置文件中的关键词;根据所述关键词,生成与所述配置文件对应的配置代码;将所述配置代码存储在预设文件中。
读取当前项目的配置文件中定义的常量可以由字符串的形式锁定;生成与所述配置文件对应的配置代码,即根据配置文件中的常量名称生成读取该常量的函数,代码由多个函数的组成。
另外,可以自定义代码模版中的属性,即定义生成何种语言的代码,可以生成java代码,也可以生成csharp代码,通过代码模版的调整实现对于多种语言(java语言、csharp语言、c++语言等等)的支持。
该过程是一个重复的过程,后续的开发人员再修改配置文件,则插件生成与env.properties配置文件配套的代码。生成新代码后,使用新代码,并将原先的代码删除。
同样以需要获取运行环境的log常量为例,应用软件需要获取运行环境的log常量。利用本发明的方法,首先编写一个maven插件,该插件包括常量名称,也就是包括常量名称“log”;而后,在maven工程编译过程中添加编写的插件,指定插件需要处理的配置文件,也就是指定在确定的运行环境下的与这个log常量关联的配件文件为哪个;最后进行编译maven工程,插件读取配置文件,按照配置文件中的常量名称(可能是“log”、“log2”或其它名称)生成读取配置文件的代码,即在编译完成后的软件代码中,这个常量名称被确定为与该运行环境的配置文件中的常量名称一致。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述的配置文件处理方法。
实施例2
与实施例1的区别在于,该方法还可以指定所生成代码的存储位置。
该实施例2在实际应用中的流程图如图3所示。即在指定所述插件关联的配置文件之后指定所述插件生成代码的存储位置。一般存储位置可以指定到Maven工程的代码文件夹下,也可以通过用户选择。
实施例3
与实施例1、2的区别在于,当所述的当前配置文件中具有重名的常量时,可以发出提示。例如,当前配置文件中有两个常量名称都是“log”,那就需要向用户给出提示信息。
采用了该发明的配置文件处理装置、方法及存储介质,其通过读取指定配置文件中的关键词;并根据所述关键词,生成与所述配置文件对应的配置代码;而后将配置代码存储在预设文件中。由此简化开发人员的工作,同时可以避免不必要的错误,且本发明的配置文件处理装置、方法及存储介质,其实现方式简便,应用成本低廉,应用范围也十分广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (10)
1.一种配置文件处理装置,其特征在于,包括:
提取模块,用于读取指定配置文件中的关键词;
代码生成模块,用于根据所述关键词,生成与所述配置文件对应的配置代码;
存储模块,用于将所述配置代码存储在预设文件中。
2.根据权利要求1所述的配置文件处理装置,其特征在于,所述装置运行有Maven插件;并利用该Maven插件实现所述的提取模块、代码生成模块和存储模块。
3.根据权利要求1所述的配置文件处理装置,其特征在于,所述Maven插件嵌入并适配Maven工程编译过程,在所述的Maven工程编译过程中,运行所述的Maven插件。
4.根据权利要求1所述的配置文件处理装置,其特征在于,所述的配置文件为数据源配置文件和/或日志文件配置文件。
5.根据权利要求4所述的配置文件处理装置,其特征在于,所述的关键词为常量的名称。
6.根据权利要求5所述的配置文件处理装置,其特征在于,所述根据所述关键词,生成与所述配置文件对应的配置代码,具体包括:
读取当前配置文件中定义的常量;生成获取当前配置文件中每个常量的代码。
7.根据权利要求6所述的配置文件处理装置,其特征在于,所述根据所述关键词,生成与所述配置文件对应的配置代码,具体还包括:
当所述的当前配置文件中具有重名的常量时,发出提示。
8.根据权利要求6所述的配置文件处理装置,其特征在于,所述的生成获取当前配置文件中每个常量的代码,具体为:
根据代码模板生成与该模板对应种类的代码,该代码用以获取当前配置文件中每个常量的代码。
9.一种配置文件处理方法,其特征在于,该方法包括以下步骤:
读取指定配置文件中的关键词;
根据所述关键词,生成与所述配置文件对应的配置代码;
将所述配置代码存储在预设文件中。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现权利要求9所述的配置文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510257.4A CN112181398A (zh) | 2019-06-13 | 2019-06-13 | 配置文件处理装置、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510257.4A CN112181398A (zh) | 2019-06-13 | 2019-06-13 | 配置文件处理装置、方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181398A true CN112181398A (zh) | 2021-01-05 |
Family
ID=73914242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910510257.4A Pending CN112181398A (zh) | 2019-06-13 | 2019-06-13 | 配置文件处理装置、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181398A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918239A (zh) * | 2021-10-14 | 2022-01-11 | 上海幻电信息科技有限公司 | 代码实现方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
US20130074038A1 (en) * | 2011-09-15 | 2013-03-21 | Sonatype, Inc. | Method and system for evaluating a software artifact based on issue tracking and source control information |
CN103605526A (zh) * | 2013-11-28 | 2014-02-26 | 蓝盾信息安全技术股份有限公司 | 一种基于责任链模式的模版组件化生成代码的方法 |
CN106445505A (zh) * | 2016-08-31 | 2017-02-22 | 恒生电子股份有限公司 | 一种代码处理方法及装置 |
US20170090883A1 (en) * | 2015-09-24 | 2017-03-30 | Alibaba Group Holding Limited | Methods and systems for uploading a program based on a target network platform |
-
2019
- 2019-06-13 CN CN201910510257.4A patent/CN112181398A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122854A (zh) * | 2007-09-13 | 2008-02-13 | 上海交通大学 | 结构化的代码自动配置方法及装置 |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
US20130074038A1 (en) * | 2011-09-15 | 2013-03-21 | Sonatype, Inc. | Method and system for evaluating a software artifact based on issue tracking and source control information |
CN103605526A (zh) * | 2013-11-28 | 2014-02-26 | 蓝盾信息安全技术股份有限公司 | 一种基于责任链模式的模版组件化生成代码的方法 |
US20170090883A1 (en) * | 2015-09-24 | 2017-03-30 | Alibaba Group Holding Limited | Methods and systems for uploading a program based on a target network platform |
CN106445505A (zh) * | 2016-08-31 | 2017-02-22 | 恒生电子股份有限公司 | 一种代码处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113918239A (zh) * | 2021-10-14 | 2022-01-11 | 上海幻电信息科技有限公司 | 代码实现方法及系统 |
CN113918239B (zh) * | 2021-10-14 | 2024-05-17 | 上海幻电信息科技有限公司 | 代码实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241454B (zh) | 一种生成网页代码的方法、系统和装置 | |
US8407667B2 (en) | Inferring missing type information for reflection | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
US6934940B2 (en) | Source code transformation-temporary object reduction | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
WO2020015191A1 (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
US8621429B2 (en) | Software development support apparatus, function extension method and storage medium for storing function extension program | |
CN101430643A (zh) | 提供项目开发环境的方法和装置,以及项目开发系统 | |
US9141344B2 (en) | Hover help support for application source code | |
CN108399086B (zh) | 一种微件管理方法、服务器和计算机可读存储介质 | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
WO2014200783A1 (en) | Automatic source code generation | |
CN116069325B (zh) | 前端项目构建方法、装置、设备及计算机可读存储介质 | |
CN112463135A (zh) | 代码生成方法、代码生成器、电子设备及存储介质 | |
CN111966357A (zh) | 一种操作系统应用编译方法、装置及电子设备 | |
US9274755B2 (en) | Infrastructure for generating code using annotation and template generators | |
US7657869B2 (en) | Integration of external tools into an existing design environment | |
CN112181398A (zh) | 配置文件处理装置、方法及存储介质 | |
US20110296373A1 (en) | Command line shell command generation based on schema | |
CN114816364A (zh) | 基于Swagger动态生成范本文件的方法、装置及应用 | |
CN115291887A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN114398912A (zh) | 语言处理方法、装置、设备及存储介质 | |
JP2014228990A (ja) | 制御プログラム作成装置および制御プログラム作成方法 |
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 |