System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件开发,具体而言,涉及一种基于模板的spring应用二次开发方法和装置。
技术介绍
1、spring框架下的前后端开发一般采用经典的model-view-controller模式,其可扩展性、易用性和可维护性有较大的优势。其利用常规java代码开发需要整体编译进行部署,对于上线运行后出现业务调整的代码,编译后进行发布,在用户使用过程中进行一般功能调整时会出现响应速度慢,发布周期长,灵活性不足等问题。另外,零星代码的调整,也需要开发人员介入,常常出现响应周期长,维护成本高等问题。
技术实现思路
1、本专利技术的目的在于提供一种基于模板的spring应用二次开发方法和装置,其能够以模板定义方式实现代码的二次开发,显著提升了系统的扩展性和灵活性。
2、本专利技术的技术方案为:
3、第一方面,本申请提供一种基于模板的spring应用二次开发方法,其包括以下步骤:
4、s1、构建文本编辑器,将spring框架的模板代码按注解和注释方式在定义槽位上进行编辑,同时更新至数据库,并与槽位进行绑定;
5、s2、在代码编辑完成后,使用jvm加载器获取jvm的内存对象以按槽位定位源代码位置;
6、s3、根据源代码位置按需加载控制器的源代码;
7、s4、控制器按照更新的代码在客户端中输入数据进行转换和验证,生成更新的bean字节码;
8、s5、控制器按照更新的bean字节码以模板的json格式生成json对
9、进一步地,步骤s1还包括:
10、以模板的提示对槽位的模板代码进行维护;维护方式包括变量获取、类型转换、数据校验和格式化数据。
11、进一步地,步骤s3包括:
12、判断当前槽位代码加载是否有效,若是,则根据源代码位置按需加载控制器类的源代码,若否,则修改运行时的jvm程序字节,并且使用spring框架将对应的bean对象替换为更新后的字节码。
13、进一步地,上述修改运行时的jvm程序字节的步骤包括:
14、标记当前槽位源代码需要加载;
15、获取编辑合适的模版源代码,使用槽位和反射技术定位所在的函数,将模板源代码转换成标准java源代码,并适配到具体的函数与代码段;
16、使用javaassist对java源代码进行加载,并定位到具体的函数与代码段,同时将序列化字节码转换至jvm内存,更新对应类的内存字节码。
17、进一步地,步骤s5包括:
18、控制器将更新的bean字节码带入模板代码,按照层级对键值对和表达式进行解析,生成层级json对象;
19、对层级json对象进行脱敏相关的数据处理后输出规整的json对象。
20、第二方面,本申请提供一种基于模板的spring应用二次开发装置,包括:
21、代码编辑模块,用于构建文本编辑器,将spring框架的模板代码按注解和注释方式在定义槽位上进行编辑,同时更新至数据库,并与槽位进行绑定;
22、代码获取模块,用于在代码编辑完成后,使用jvm加载器获取jvm的内存对象以按槽位定位源代码位置;
23、代码加载模块,用于根据源代码位置按需加载控制器的源代码;
24、模板化输入模块,用于控制器按照更新的代码在客户端中输入数据进行转换和验证,生成更新的bean字节码;
25、模板化输出模块,用于控制器按照更新的bean字节码以模板的json格式生成json对象。
26、第三方面,本申请提供一种电子设备,包括:
27、存储器,用于存储一个或多个程序;
28、处理器;
29、当上述一个或多个程序被上述处理器执行时,实现如上述第一方面中任一项的一种基于模板的spring应用二次开发方法。
30、第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的一种基于模板的spring应用二次开发方法。
31、相对于现有技术,本专利技术至少具有如下优点或有益效果:
32、本专利技术提供一种基于模板的spring应用二次开发方法和装置,通过利用javaassist工具库在模板上完成代码编辑和生成java字节码,使用标签和槽位定位在jvm上实现动态代码的修改和执行,支持在线发布,形成了二次开发能力,相较于传统的开发方式,具备代码适应性的维护能力,较好的适应输入的格式校验和输出的格式定义,增强了系统可扩展性、支持动态数据校验和安全应对的处理能力,显著提高了应用开发的灵活性和安全性,降低了维护难度和维护成本,具备二次开发和在线部署的能力。
本文档来自技高网...【技术保护点】
1.一种基于模板的Spring应用二次开发方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于模板的Spring应用二次开发方法,其特征在于,步骤S1还包括:
3.如权利要求1所述的一种基于模板的Spring应用二次开发方法,其特征在于,步骤S3包括:
4.如权利要求3所述的一种基于模板的Spring应用二次开发方法,其特征在于,所述修改运行时的JVM程序字节的步骤包括:
5.如权利要求1所述的一种基于模板的Spring应用二次开发方法,其特征在于,步骤S5包括:
6.如权利要求1所述的一种基于模板的Spring应用二次开发装置,其特征在于,包括:
7.一种电子设备,其特征在于,包括:
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的一种基于模板的Spring应用二次开发方法。
【技术特征摘要】
1.一种基于模板的spring应用二次开发方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于模板的spring应用二次开发方法,其特征在于,步骤s1还包括:
3.如权利要求1所述的一种基于模板的spring应用二次开发方法,其特征在于,步骤s3包括:
4.如权利要求3所述的一种基于模板的spring应用二次开发方法,其特征在于,所述修改运行时的jvm程序字节的步骤包括:
【专利技术属性】
技术研发人员:陈强,
申请(专利权)人:兰州飞天网景信息产业有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。