System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及数据处理,特别地涉及一种基于源码解析的配置数据提取及校验方法、装置及设备。
技术介绍
1、目前,为了提高应用的可靠性、可扩展性和性能,可将一个应用程序拆分成一组分散在多个计算节点上的计算机程序(简称程序),每个节点都是一个独立的物理设备或软件进程,但都是为了实现应用程序的功能而工作。
2、相关技术中,对于在各个程序中定义的配置数据,仅能在程序运行后,从各个程序的配置数据存储器中提取,而当程序未运行时,就无法获取到程序的配置数据。基于此,配置数据的获取依赖于程序的运行,无法在程序运行之前获取到配置数据并对其进行校验,配置数据的获取难度高,当程序配置出错时,仅能在程序运行异常时才能发现,校验存在滞后性,无法及时发现程序配置异常,进而影响到程序的开发效率。
技术实现思路
1、有鉴于此,本申请实施例提供一种基于源码解析的配置数据提取及校验方法、装置、设备、介质及产品,无需运行程序即可快速获取到各个程序的配置数据并对其进行全局校验,能够及时发现配置异常,有助于提升开发效率。
2、第一方面,本申请实施例提供一种基于源码解析的配置数据提取及校验方法,该方法包括:在获取到当前程序的静态源码的情况下,扫描静态源码,从静态源码中提取包含java语言特性标记信息的代码片段,其中,java语言特性标记信息包括注解和标识符;解析包含java语言特性标记信息的代码片段,得到当前程序的配置数据;将当前程序的配置数据自动上传至目标服务器,目标服务器用于管理各个程序
3、在第一方面的一些可实现方式中,配置数据包括listview对应的视图配置数据和datasource对应的数据源配置数据,注解包括@hrolistview、@hrojoindatasource、@hrolistviewcolumn、@hrodatasource、@hrodatasourcecolumn,解析包含java语言特性标记信息的代码片段,得到当前程序的配置数据,包括:分别解析@hrolistview、@hrojoindatasource、@hrolistviewcolumn所在的代码片段,得到listview对应的视图配置数据;分别解析@hrodatasource、@hrodatasourcecolumn所在的代码片段,得到datasource对应的数据源配置数据。
4、在第一方面的一些可实现方式中,分别解析@hrolistview、@hrojoindatasource、@hrolistviewcolumn所在的代码片段,得到listview对应的视图配置数据,包括:解析@hrolistview所在的第一代码片段,提取注解参数name、orderby的参数值,并将name的参数值作为listview的视图名,将orderby的参数值作为listview的视图默认排序规则;解析@hrojoindatasource所在的第二代码片段,提取注解参数name、condition、mastercolumn和slavecolumn的参数值,并将name的参数值作为listview所绑定的数据源的名称,将condition的参数值作为数据源绑定至listview时的查询条件,将mastercolumn和slavecolumn的参数值作为数据源绑定至listview时的关联字段;解析@hrolistviewcolumn所在的第三代码片段,提取注解参数displayname、listindex的参数值,并将displayname的参数值作为视图列显示名,将listindex的参数值作为视图列的排序位置。
5、在第一方面的一些可实现方式中,分别解析@hrodatasource、@hrodatasourcecolumn所在的代码片段,得到datasource对应的数据源配置数据,包括:解析@hrodatasource所在的第四代码片段,提取注解参数name、table、database的参数值,并将name的参数值作为数据源名称,将table的参数值作为数据源对应数据表的名称,将database的参数值作为数据表所在的数据库名称;解析@hrodatasourcecolumn所在的第五代码片段,提取注解参数name的参数值作为数据源列名称,并提取注解参数queryexpression的参数值作为查询表达式,提取注解参数qualifiedcolumnname的参数值作为列别名。
6、在第一方面的一些可实现方式中,将各个程序的配置数据下载至本地进行可视化展示,包括:在将各个程序的配置数据下载至本地后,确定各个程序对应的配置数据为全局配置数据,当前程序对应的配置数据为本地配置数据;在当前程序对应的本地界面,以不同的tab展示本地配置数据和全局配置数据。
7、在第一方面的一些可实现方式中,本地配置数据和全局配置数据展示在第一列表,本地配置数据和全局配置数据中的视图配置数据包括多行,每一行对应一个视图,在以不同的tab展示本地配置数据和全局配置数据之后,方法还包括:响应于对第一列表的多行视图配置数据中目标行的第一选取操作,在本地界面的第二列表展示目标行对应视图的所有视图列数据,以及在第三列表展示目标行对应视图的所有数据源数据。
8、在第一方面的一些可实现方式中,在获取到当前程序的静态源码的情况下,方法还包括:在代码界面显示当前程序的静态源码;响应于对静态源码中目标字符串的第二选取操作,显示针对目标字符串的多个功能选项;响应于对多个功能选项中目标功能选项的第三选取操作,将目标字符串与@hrodatasource进行组合,得到组合字段;在当前程序的静态源码中查询组合字段,确定组合字段所在的代码行并进行跳转,在静态源码中定位目标字符串所定义的数据源。
9、在第一方面的一些可实现方式中,各个程序对应的配置数据为全局配置数据,全局配置数据包括视图配置数据和数据源配置数据,全局配置数据的数据源配置数据以列表形式展示在当前程序的本地界面,在当前程序的静态源码中查询组合字段之后,方法还包括:在当前程序的静态源码中未查询到组合字段的情况下,在全局配置数据的数据源配置数据中查询组合字段;在全局配置数据的数据源配置数据中查询到的情况下,确定本地界面中组合字段所在的列表行并进行跳转,在全局配置数据中定位目标字符串所定义的数据源。
10、第二方面,本申请实施例提供一种基于源码解析的配置数据提取及校验装置,该装置包括:提取模块,用于在获取到当前程序的静态源码的情况下,扫描静态源码,从静态源码中提取包含java语言特性标记信息的代码片段,其中,java语言特性标记信息包括注解和标识符;解析模块,用于解析包含java语言特性标记信息的代码片段,得到当前程序的配置数据;上传模块,用于将当前程序的配置数据自动上传至目标服务器,目本文档来自技高网...
【技术保护点】
1.一种基于源码解析的配置数据提取及校验方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述配置数据包括Listview对应的视图配置数据和DataSource对应的数据源配置数据,所述注解包括@HroListview、@HroJoinDataSource、@HroListviewColumn、@HroDataSource、@HroDataSourceColumn,所述解析所述包含java语言特性标记信息的代码片段,得到所述当前程序的配置数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述分别解析@HroListview、@HroJoinDataSource、@HroListviewColumn所在的代码片段,得到所述Listview对应的视图配置数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述分别解析@HroDataSource、@HroDataSourceColumn所在的代码片段,得到所述DataSource对应的数据源配置数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述将所
6.根据权利要求5所述的方法,其特征在于,所述本地配置数据和所述全局配置数据展示在第一列表,所述本地配置数据和所述全局配置数据中的视图配置数据包括多行,每一行对应一个视图,在所述以不同的Tab展示所述本地配置数据和所述全局配置数据之后,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,在获取到当前程序的静态源码的情况下,所述方法还包括:
8.根据权利要求7所述的方法,其特征在于,所述各个程序对应的配置数据为全局配置数据,所述全局配置数据包括视图配置数据和数据源配置数据,所述数据源配置数据以列表形式展示在所述当前程序的本地界面,在所述当前程序的静态源码中查询所述组合字段之后,所述方法还包括:
9.一种基于源码解析的配置数据提取及校验装置,其特征在于,包括:
10.一种电子设备,其特征在于,所述电子设备包括:处理器以及存储有计算机程序指令的存储器;所述电子设备执行所述计算机程序指令时实现如权利要求1-8中任一项所述的方法。
...【技术特征摘要】
1.一种基于源码解析的配置数据提取及校验方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述配置数据包括listview对应的视图配置数据和datasource对应的数据源配置数据,所述注解包括@hrolistview、@hrojoindatasource、@hrolistviewcolumn、@hrodatasource、@hrodatasourcecolumn,所述解析所述包含java语言特性标记信息的代码片段,得到所述当前程序的配置数据,包括:
3.根据权利要求2所述的方法,其特征在于,所述分别解析@hrolistview、@hrojoindatasource、@hrolistviewcolumn所在的代码片段,得到所述listview对应的视图配置数据,包括:
4.根据权利要求2所述的方法,其特征在于,所述分别解析@hrodatasource、@hrodatasourcecolumn所在的代码片段,得到所述datasource对应的数据源配置数据,包括:
5.根据权利要求1所述的方法,...
【专利技术属性】
技术研发人员:陈琨,梁迪,刘林,
申请(专利权)人:前锦网络信息技术上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。