CN111158687B - Java插件的界面生成方法、装置、计算机设备和存储介质 - Google Patents

Java插件的界面生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111158687B
CN111158687B CN201911417699.0A CN201911417699A CN111158687B CN 111158687 B CN111158687 B CN 111158687B CN 201911417699 A CN201911417699 A CN 201911417699A CN 111158687 B CN111158687 B CN 111158687B
Authority
CN
China
Prior art keywords
plug
interface
json
jsonschema
java
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.)
Active
Application number
CN201911417699.0A
Other languages
English (en)
Other versions
CN111158687A (zh
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.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
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 Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201911417699.0A priority Critical patent/CN111158687B/zh
Publication of CN111158687A publication Critical patent/CN111158687A/zh
Application granted granted Critical
Publication of CN111158687B publication Critical patent/CN111158687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供了一种JAVA插件的界面生成方法、装置、计算机设备和存储介质。其中,该JAVA插件的界面生成方法包括:基于JsonSchema标准对插件的类加标注以进行属性格式描述;通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;利用Json‑editor读取JsonSchema文件,生成插件编辑界面;响应于在插件编辑界面上的输入操作,通过Json‑editor保存输入操作对应的输入内容,生成配置插件的Json配置字符串;通过JsonObjectMapper将Json配置字符串转换成插件的配置实例。通过本发明,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。

Description

JAVA插件的界面生成方法、装置、计算机设备和存储介质
技术领域
本发明涉及JAVA WEB应用开发技术领域,尤其涉及一种JAVA插件的界面生成方法、装置、计算机设备和存储介质。
背景技术
在互联网领域下的JAVA WEB应用开发中,插件作为一个常用的技术被广泛使用,相应地,插件的WEB界面开发工作作为其中较为重要的环节。
现有开发一个插件的WEB界面,开发人员需要定义一个JAVA实体BEAN对象、编写DAO类、利用数据库建表保存数据、编写前台界面以及编写control\service类等工作,这个过程需要创建很多文件和数据表,步骤比较繁琐,导致开发人员工作量较大。
针对相关技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,目前尚未提出有效的解决方案。
发明内容
本发明的目的是提供一种JAVA插件的界面生成方法、装置、计算机设备和存储介质,用于解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种JAVA插件的界面生成方法。
该JAVA插件的界面生成方法包括:基于JsonSchema标准对插件的类加标注以进行属性格式描述;通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;利用Json-editor读取JsonSchema文件,生成插件编辑界面;响应于在插件编辑界面上的输入操作,通过Json-editor保存输入操作对应的输入内容,生成配置插件的Json配置字符串;通过JsonObjectMapper将Json配置字符串转换成插件的配置实例。
进一步地,基于JsonSchema标准对插件的类加标注以进行属性格式描述的步骤包括:通过JAVA的annotation注解功能对插件的对象代码上加标注以进行属性格式描述。
进一步地,在基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,该方法还包括如下步骤:扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;解析筛选出的Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
进一步地,在基于JsonSchema标准对插件的类加标注以进行属性格式描述之前,该方法还包括:基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,其中,预定义扩展至少包括如下的扩展内容:date,datetime,time,password,textarea,checkbox,table。
进一步地,预定义扩展还包括如下内容以实现下拉列表、下拉列表选择、下拉列表联动的展示样式:
REF_ID:id&name:/url
REF_ID_REQUIRED:id&name:/url
REF:id&name:/url
其中,下拉列表的选项是通过web接口访问url返回的对象数组;id字段为用于指示界面显示的字段,name字段为用于指示内部代码返回的字段。
进一步地,预定义扩展还包括Script:url,用于通过Script:url引入javascript代码,进行界面的定制。
根据本发明实施例的一个方面,为实现上述目的,本发明提供了一种JAVA插件的界面生成装置。
该JAVA插件的界面生成装置包括:注解模块,用于基于JsonSchema标准对插件的类加标注以进行属性格式描述;第一文件生成模块,用于通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;第二文件生成模块,用于利用Json-editor读取JsonSchema文件,生成插件编辑界面;第三文件生成模块,用于响应于在插件编辑界面上的输入操作,通过Json-editor保存输入操作对应的输入内容,生成配置插件的Json配置字符串;转换模块,用于通过JsonObjectMapper将Json配置字符串转换成插件的配置实例。
进一步地,第一文件生成模块通过JAVA的annotation注解功能对插件的对象代码上加标注以进行属性格式描述。
进一步地,该装置还包括注册模块,其中,注册模块包括:扫描筛选单元,用于在基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;解析注册单元,用于解析筛选出的Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
进一步地,该装置还包括扩展模块,用于在注解模块基于JsonSchema标准对插件的类加标注以进行属性格式描述之前,基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,其中,预定义扩展至少包括如下的扩展内容:date,datetime,time,password,textarea,checkbox,table。
进一步地,扩展模块预定义扩展还包括如下内容以实现下拉列表、下拉列表选择、下拉列表联动的展示样式:
REF_ID:id&name:/url
REF_ID_REQUIRED:id&name:/url
REF:id&name:/url
其中,下拉列表的选项是通过web接口访问url返回的对象数组;id字段为用于指示界面显示的字段,name字段为用于指示内部代码返回的字段。
进一步地,扩展模块预定义扩展还包括Script:url,用于通过Script:url引入javascript代码,进行界面的定制。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的JAVA插件的界面生成方法、装置、计算机设备和存储介质,在实现时,先基于JsonSchema标准对插件的类加标注进行描述,在完成加标注后,利用JsonSchemaGenerator、Json-editor实现自动识别和转换,生成编辑界面,在该编辑界面获取用户输入的界面编辑内容后,可通过Json-editor保存自动获得Json配置字符串,然后利用JsonObjectMapper组件即可将Json配置字符串转化为插件的配置实例,完成JAVA插件的自动生成。整个插件的生成过程中,利用JsonSchemaGenerator、Json-editor、JsonObjectMapper配合预设规则实现JAVA插件的自动生成,相较于现有JAVA插件的界面开发工作中创建很多文件和数据表的步骤,大大减低了JAVA插件的界面开发工作量,有效地解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的JAVA插件的界面生成方法的一种可选的流程图;
图2为本发明实施例一提供的JAVA插件的界面生成方法中插件配置和组装过程的一种可选的示意图;
图3为本发明实施例二提供的JAVA插件的界面生成装置的一种可选的结构框图;
图4为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了降低WEB界面开发工作中开发人员的工作量,同时减低JAVA插件的界面开发难度,本发明提供了一种JAVA插件的界面生成方法和装置,使得定义一个插件只需要简单编辑,即可自动生成插件界面;同时,本发明自动生成插件界面支持下拉列表、联动下拉列表、联动自动填充这几种特殊类型;此外,本发明中的插件可以被自动发现注册,简化了插件管理的步骤。在本发明提供的JAVA插件的界面生成方案中,先基于JsonSchema标准对插件的类加标注进行描述,在完成加标注后,利用JsonSchemaGenerator、Json-editor实现自动识别和转换,生成编辑界面,在该编辑界面获取用户输入的界面编辑内容后,可通过Json-editor保存自动获得Json配置字符串,然后利用JsonObjectMapper组件即可将Json配置字符串转化为插件的配置实例,完成JAVA插件的自动生成。整个插件的生成过程中,利用JsonSchemaGenerator、Json-editor、JsonObjectMapper配合预设规则实现JAVA插件的自动生成,相较于现有JAVA插件的界面开发工作中创建很多文件和数据表的步骤,大大减低了JAVA插件的界面开发工作量。此外,在上述过程中,还引入了自动注册机制,通过该机制,使得在定义完插件类后,直接被插件管理器使用,进一步提高插件界面自动生成的自动化。本发明的各个实施例有效地解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
关于本发明提供的JAVA插件的界面生成方法、装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种JAVA插件的界面生成方法,该检测方法可应用于JAVAWEB应用开发领域中的界面开发工作,通过该方法,可简化JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。具体地,图1为本发明实施例一提供的JAVA插件的界面生成方法的流程图,如图1所示,该实施例提供的JAVA插件的界面生成方法包括如下的步骤S101至步骤S105。
步骤S101:基于JsonSchema标准对插件的类加标注以进行属性格式描述;
在实现时,可借助JAVA自带注解功能(annotation),在插件JAVA的对象代码上加标注,进行属性格式的说明。具体地,在基于JsonSchema标准对插件的类加标注以进行属性格式描述之前,还基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,也就是说,标注是基于JsonSchema协议标准,并在JsonSchema的基础上进行了扩充。
具体来说,基于JsonSchema标准,可定义一些标注,实现以下标注内容:
@JsonSchemaDefault("/usr/local1")//缺省值
@JsonSchemaTitle("Application Dir")//此属性在界面上展示的信息
@JsonSchemaDescription("the directory of application installed")//鼠标移到上面的描述
@JsonSchemaFormat("Date")//属性的编辑类型
需要说明的是,现阶段JsonSchema标准制订的目标是用来做数据校验的,而并非做界面生成,因此该JsonSchema标准重点在于定义数据的类型和合法范围,而不是展现形式,特别是做不了界面很复杂的交互动作。发明人通过创造性的分析,并通过重新定义JsonSchema标准找到利用JsonSchema与JAVA界面自动生成相融合的契机。在实现时,先利用JsonSchema标准定义了7种基本类型:"array","boolean","integer","null","number","object","string",后续发现只定义的7种基本类型与界面自动生成相融合时,界面展现不够,所以发明人再次基于JsonSchema标准重新定义,在@JsonSchemaFormat基础上扩充了新的格式。
优选地,新定义的格式至少包括如下之一或组合:date,datetime,time,password,textarea,checkbox,table。其中,这几种格式和浏览器相应控件一样。此外,发明人再次分析界面开发人员的需求,为了进一步完善界面开发中的界面展现形式,发明人又定义了如下几种比较复杂的下拉列表样式,实现下拉列表、下拉列表选择、下拉列表联动的展示样式:
REF_ID:id&name:/url
REF_ID_REQUIRED:id&name:/url
REF:id&name:/url
前两种样式是生成一个下拉列表框,下拉列表的选项是通过web接口访问url返回的对象数组。id,name这两个字段名用于说明对象的哪个字段用于界面显示,哪个字段作为内部代码返回。REF_ID和REF_ID_REQUIRED的区别在于REF_ID除了可以在下拉列表中选择,还有一个自定义的选项。REF产生的是一个类似的复合框。既可以通过列表选择,又可以手工输入。另外,url里可以用%fieldName%这种格式嵌入其他字段名,产生一个拼接的url,这样就实现了下拉框的联动。联动的意思是某个字段的修改后影响另一个字段的选择范围。
进一步地,考虑到界面开发工作中可能面临的定制化需求,发明人还定义一种新样式:Script:url,可以引入一段javascript代码,做定制化的界面,提高自动生成界面的通用性。
请结合参考图2,图2示出本JAVA插件的界面生成方法中插件配置和组装过程,其中,插件配置和组装整个过程包括上游响应端侧APP、界面生成Json类工厂处理端侧(图中JsonBeanFactory框内)以及JsonBeanFactory下游的界面端侧,本实施例中的步骤S101对应图2中步骤1在类定义的时候加标注的步骤。
步骤S102:通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;
调用JsonSchemaGenerator功能将加标注的类生成JsonSchema文件,请结合参考图2,步骤S102对应图2中界面生成Json类工厂处理端侧内步骤2从JAVA类生成JsonSchema文件的步骤。
在步骤S101中定义完插件类之后,要想被插件管理器使用,首先需要进行注册。现有注册过程仍是开发人员手动导入,识别或处理,为了提高界面生成过程中的自动化程度,在这里发明人定义了一套插件发现、自动注册机制。
因此,在实施例的一个优选的实施方式中,在基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,包括如下步骤:扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;解析筛选出的Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
具体来说,插件管理器会扫描所有类路径下jar包,找到jar包中所有NoahPlugin_开头的json配置文件,解析这些配置文件,找到对应的JAVA类和对应的图标文件,进行插件注册。有了这套注册机制,用户需要开发新的插件,只要打好jar包,放到/lib目录下就可以了。插件管理器会调用JsonSchemaGenerator生成JsonSchema。JsonSchemaGenerator本身是整合的开源代码,可以识别定义的标注,产生JsonSchema。上述自动注册机制进一步简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
步骤S103:利用Json-editor读取JsonSchema文件,生成插件编辑界面;
请结合参考图2,步骤S103对应图2中步骤3的根据JsonSchema生成界面的步骤。Json-Editor可以根据JsonSchema文件的定义生成WEB界面。但是考虑到步骤101中我们基于JsonSchema标准进行了新定义格式,因此需要对此处JsonEditor基于我们的定义做适应性更改以便Json-Editor支持前文所说的新定义格式,同时在更改的时候,还需要考虑界面布局,符合当前界面主流审美(包含且不限于基本界面要素及关联关系)。在进行Json-Editor适应性修改时,开发人员可以根据前面的自定义适应性修改,同时也可以进一步结合自身需求来修改,具体地,可增加自定义格式的支持,同时要求后台逻辑也增加了对联动控件的支持等等策略。也可在支持前述的自定义标准下,将代码重构,重新规划布局,重写表现样式。
步骤S104:响应于在插件编辑界面上的输入操作,通过Json-editor保存输入操作对应的输入内容,生成配置插件的Json配置字符串;
请结合参考图2,步骤S103对应图2中步骤3的用户在这个界面输入后生成Json配置字符串的步骤。这一步骤主要是用户操作,用户在生成的界面下输入数据后,就会产生一个插件Json配置信息(JsonConfig)发到后台服务器。这是Json-Editor实现的一部分功能。此处需要说明的是,这里虽然利用Json-Editor自身功能,但是若只考虑Json-Editor自身功能,不结合本发明整体流程逻辑是无法直接想到的。是发明人通过创造性的劳动及思想,推动界面实现自动配置过程中产生了JsonSchema文件,才会考虑使用Json-Editor,形成完整不可独立看待的流程,此处使用Json-Editor和界面自动生成方案构成不可拆开的整体方案。
步骤S105:通过JsonObjectMapper将Json配置字符串转换成插件的配置实例。
前文提到的插件管理器自动注册插件时,会将插件类也注册到ObjectMapper中,这样,ObjectMapper可以将插件Json配置信息转换成插件的对象实例。
在上述实施方式中,通过在插件JAVA的对象代码上加标注(annotation),进行属性格式的说明,标注是在JsonSchema的基础上进行了扩充。特别地,我们在JsonSchema基础上增加了下拉列表,列表联动选择和引入自定义脚本等几种界面描述。前端需要访问插件界面时,程序先根据标注生成JsonSchema,再根据JsonSchema描述生成界面。用户编辑完界面,保存属性时,值会自动保存成JSON格式送到后端服务器。服务器把这个JSON串作为对象的配置文本统一保存,这样就不需要为每个插件单独创建表。需要生成插件对象时,可以根据这个JSON串自动创建。
本实施例中提供的JAVA插件的界面生成方法,在实现时,先基于JsonSchema标准对插件的类加标注进行描述,在完成加标注后,利用JsonSchemaGenerator、Json-editor实现自动识别和转换,生成编辑界面,在该编辑界面获取用户输入的界面编辑内容后,可通过Json-editor保存自动获得Json配置字符串,然后利用JsonObjectMapper组件即可将Json配置字符串转化为插件的配置实例,完成JAVA插件的自动生成。整个插件的生成过程中,利用JsonSchemaGenerator、Json-editor、JsonObjectMapper配合预设规则实现JAVA插件的自动生成,相较于现有JAVA插件的界面开发工作中创建很多文件和数据表的步骤,大大减低了JAVA插件的界面开发工作量,有效地解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
实施例二
对应于上述实施例一,本发明实施例二提供了一种JAVA插件的界面生成装置,相关技术特征和对应的技术效果可参考上述实施例一,在此处不再赘述。图3为本发明实施例二提供的JAVA插件的界面生成装置的结构框图,如图3所示,该JAVA插件的界面生成装置包括:注解模块301,用于基于JsonSchema标准对插件的类加标注以进行属性格式描述;第一文件生成模块302,用于通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;第二文件生成模块303,用于利用Json-editor读取JsonSchema文件,生成插件编辑界面;第三文件生成模块304,用于响应于在插件编辑界面上的输入操作,通过Json-editor保存输入操作对应的输入内容,生成配置插件的Json配置字符串;转换模块305,用于通过JsonObjectMapper将Json配置字符串转换成插件的配置实例。
进一步地,第一文件生成模块通过JAVA的annotation注解功能对插件的对象代码上加标注以进行属性格式描述。
进一步地,该装置还包括注册模块,其中,注册模块包括:扫描筛选单元,用于在基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;解析注册单元,用于解析筛选出的Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
进一步地,该装置还包括扩展模块,用于在注解模块基于JsonSchema标准对插件的类加标注以进行属性格式描述之前,基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,其中,预定义扩展至少包括如下的扩展内容:date,datetime,time,password,textarea,checkbox,table。
进一步地,扩展模块预定义扩展还包括如下内容以实现下拉列表、下拉列表选择、下拉列表联动的展示样式:
REF_ID:id&name:/url
REF_ID_REQUIRED:id&name:/url
REF:id&name:/url
其中,下拉列表的选项是通过web接口访问url返回的对象数组;id字段为用于指示界面显示的字段,name字段为用于指示内部代码返回的字段。
进一步地,扩展模块预定义扩展还包括Script:url,用于通过Script:url引入javascript代码,进行界面的定制。
本实施例提供的JAVA插件的界面生成装置,在实现时,先基于JsonSchema标准对插件的类加标注进行描述,在完成加标注后,利用JsonSchemaGenerator、Json-editor实现自动识别和转换,生成编辑界面,在该编辑界面获取用户输入的界面编辑内容后,可通过Json-editor保存自动获得Json配置字符串,然后利用JsonObjectMapper组件即可将Json配置字符串转化为插件的配置实例,完成JAVA插件的自动生成。整个插件的生成过程中,利用JsonSchemaGenerator、Json-editor、JsonObjectMapper配合预设规则实现JAVA插件的自动生成,相较于现有JAVA插件的界面开发工作中创建很多文件和数据表的步骤,大大减低了JAVA插件的界面开发工作量,有效地解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
实施例三
本实施例三还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图4所示。需要指出的是,图4仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的JAVA插件的界面生成装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如JAVA插件的界面生成方法等。
实施例四
本实施例四还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于JAVA插件的界面生成装置,被处理器执行时实现实施例一的JAVA插件的界面生成方法。
从以上描述中可以看出,本发明上述实施例提供的JAVA插件的界面生成方法、装置、计算机设备和存储介质,在实现时,先基于JsonSchema标准对插件的类加标注进行描述,在完成加标注后,利用JsonSchemaGenerator、Json-editor实现自动识别和转换,生成编辑界面,在该编辑界面获取用户输入的界面编辑内容后,可通过Json-editor保存自动获得Json配置字符串,然后利用JsonObjectMapper组件即可将Json配置字符串转化为插件的配置实例,完成JAVA插件的自动生成。整个插件的生成过程中,利用JsonSchemaGenerator、Json-editor、JsonObjectMapper配合预设规则实现JAVA插件的自动生成,相较于现有JAVA插件的界面开发工作中创建很多文件和数据表的步骤,大大减低了JAVA插件的界面开发工作量,有效地解决现有技术中开发插件过程中的WEB界面开发工作过程繁琐,开发人员工作量大的问题,简化了JAVA插件的界面开发的工作,降低了JAVA插件的界面开发难度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种JAVA插件的界面生成方法,其特征在于,包括:
基于JsonSchema标准对插件的类加标注以进行属性格式描述;
通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;
利用Json-editor读取所述JsonSchema文件,生成插件编辑界面;
响应于在所述插件编辑界面上的输入操作,通过所述Json-editor保存所述输入操作对应的输入内容,生成配置所述插件的Json配置字符串;
通过JsonObjectMapper将所述Json配置字符串转换成所述插件的配置实例;
其中,所述基于JsonSchema标准对插件的类加标注以进行属性格式描述,包括:
基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,其中,所述预定义扩展至少包括如下之一或组合的扩展内容:date,datetime,time,password,textarea,checkbox,table;
通过JAVA的annotation注解功能对所述插件的对象代码上加标注以进行属性格式描述。
2.根据权利要求1所述的JAVA插件的界面生成方法,其特征在于,在所述基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,还包括:
扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;
解析筛选出的所述Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
3.根据权利要求1所述的JAVA插件的界面生成方法,其特征在于,所述预定义扩展还包括如下内容以实现下拉列表、下拉列表选择、下拉列表联动的展示样式:
REF_ID:id&name:/url
REF_ID_REQUIRED:id&name:/url
REF:id&name:/url
其中,所述下拉列表的选项是通过web接口访问url返回的对象数组;所述id字段为用于指示界面显示的字段,所述name字段为用于指示内部代码返回的字段。
4.根据权利要求3所述的JAVA插件的界面生成方法,其特征在于,所述预定义扩展还包括Script:url,用于通过所述Script:url引入javascript代码,进行界面的定制。
5.一种JAVA插件的界面生成装置,其特征在于,包括:
注解模块,用于基于JsonSchema标准对插件的类加标注以进行属性格式描述;
第一文件生成模块,用于通过JsonSchemaGenerator将加标注的类生成JsonSchema文件;
第二文件生成模块,用于利用Json-editor读取所述JsonSchema文件,生成插件编辑界面;
第三文件生成模块,用于响应于在所述插件编辑界面上的输入操作,通过所述Json-editor保存所述输入操作对应的输入内容,生成配置所述插件的Json配置字符串;
转换模块,用于通过JsonObjectMapper将所述Json配置字符串转换成所述插件的配置实例;
其中,所述注解模块,用于:
基于JsonSchema标准将对插件的类进行属性格式的描述做预定义扩展,其中,所述预定义扩展至少包括如下之一或组合的扩展内容:date,datetime,time,password,textarea,checkbox,table;
通过JAVA的annotation注解功能对所述插件的对象代码上加标注以进行属性格式描述。
6.根据权利要求5所述的JAVA插件的界面生成装置,其特征在于,还包括注册模块,其中,所述注册模块包括:
扫描筛选单元,用于在所述基于JsonSchema标准对插件的类加标注以进行属性格式描述之后,通过JsonSchemaGenerator将加标注的类生成JsonSchema文件之前,扫描预设地址的类路径下jar文件,筛选出具有NoahPlugin_开头的Json配置文件;
解析注册单元,用于解析筛选出的所述Json配置文件,找到对应的JAVA类及对应的图标文件,进行插件注册。
7.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法的步骤。
CN201911417699.0A 2019-12-31 2019-12-31 Java插件的界面生成方法、装置、计算机设备和存储介质 Active CN111158687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911417699.0A CN111158687B (zh) 2019-12-31 2019-12-31 Java插件的界面生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911417699.0A CN111158687B (zh) 2019-12-31 2019-12-31 Java插件的界面生成方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111158687A CN111158687A (zh) 2020-05-15
CN111158687B true CN111158687B (zh) 2023-09-22

Family

ID=70560360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911417699.0A Active CN111158687B (zh) 2019-12-31 2019-12-31 Java插件的界面生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111158687B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148287B (zh) * 2020-08-21 2022-05-27 烽火通信科技股份有限公司 一种表格动态显示方法、装置以及电子设备
CN113064585B (zh) * 2021-04-30 2023-04-11 中国电子科技集团公司第二十九研究所 一种基于json模式的实时报文接口自动生成方法
CN114253630B (zh) * 2021-12-23 2023-07-25 上海新炬网络信息技术股份有限公司 基于Java切面修改Form表单变化信息实现日志保存的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775725A (zh) * 2016-12-19 2017-05-31 网易(杭州)网络有限公司 一种可视化的配置编辑方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195840B2 (en) * 2012-04-23 2015-11-24 Google Inc. Application-specific file type generation and use

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775725A (zh) * 2016-12-19 2017-05-31 网易(杭州)网络有限公司 一种可视化的配置编辑方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴良巧 ; .适于永中Office二次开发的Java插件技术.江南大学学报(自然科学版).2011,(05),全文. *

Also Published As

Publication number Publication date
CN111158687A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN109508191B (zh) 一种代码生成方法及系统
CN108491205B (zh) 一种基于组件树的前端网页开发方法及系统
JP6629848B2 (ja) モバイルアプリ用ページ処理
CN110764791B (zh) 小程序的渠道适配方法、装置及电子设备
CN110442822B (zh) 一种小程序内容展示方法、装置、设备及存储介质
CN111158687B (zh) Java插件的界面生成方法、装置、计算机设备和存储介质
CN110020307B (zh) 一种客户端视图的绘制方法和装置
US20030110472A1 (en) Method and system for generating program source code of a computer application from an information model
CN104133772A (zh) 一种自动生成测试数据的方法
US11003835B2 (en) System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework
US9646103B2 (en) Client-side template engine and method for constructing a nested DOM module for a website
US20160012147A1 (en) Asynchronous Initialization of Document Object Model (DOM) Modules
CN113609820A (zh) 基于可扩展标记语言文件生成word文件的方法、装置及设备
CN105589959A (zh) 表单处理方法和表单系统
CN108664242B (zh) 生成可视化界面的方法、装置、电子设备和可读存储介质
CN112087370A (zh) 发布GitHub Issues的方法、系统、电子设备和计算机可读存储介质
US20160012144A1 (en) Javascript-based, client-side template driver system
CN111752565A (zh) 一种界面生成方法、装置、计算机设备及可读存储介质
CN116974620A (zh) 应用程序的生成方法、运行方法以及相应的装置
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
CN101876998A (zh) 一种实现数据编辑的方法和系统
US20160012023A1 (en) Self-Referencing of Running Script Elements in Asynchronously Loaded DOM Modules
CN115495068A (zh) Vue页面生成方法及装置
CN114527979A (zh) 一种生成多端表单交互页面的方法及系统
CN114546418A (zh) aPaaS一体机应用平台

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: Qianxin Technology Group Co.,Ltd.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant