System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种插件二次开发处理方法、装置、设备及存储介质制造方法及图纸_技高网

一种插件二次开发处理方法、装置、设备及存储介质制造方法及图纸

技术编号:43761436 阅读:2 留言:0更新日期:2024-12-24 16:04
本申请公开了一种插件二次开发处理方法、装置、设备及存储介质,根据层应用对象树规范,支持插件在应用的基础之上进行调整型与增强型功能开发,在编码、启动、运行阶段,针对插件的代码语法、代码提示、模型拟合、加载器扩展等方式,实现应用插件的功能增强,让模块应用核心逻辑、个性化需求与行业需求三者之间达到一定的平衡,解决了模块化开发在跨行业产品支持上存在不足,容易导致产品变得复杂和难以配置,以及插件机制的扩展性有限,无法对基准功能进行根本性的调整的技术问题。

【技术实现步骤摘要】

本申请涉及软件,尤其涉及一种插件二次开发处理方法、装置、设备及存储介质


技术介绍

1、在软件开发领域,模块化开发因其能够根据业务领域划分模块并通过标准化接口促进模块间协作,提高了代码的清晰度和开发效率,成为单一项目中的首选策略。但在跨行业软件开发和长期技术积累的背景下,模块化开发遇到了挑战。不同行业的需求和特性差异导致开发者不得不在单个模块中添加大量兼容性配置,这不仅使模块变得臃肿,还增加了配置的复杂性和维护难度。

2、另一方面,为了满足工具类软件和框架的灵活性和扩展性需求,业界普遍采用了基于规范的插件机制。这种机制通过提供标准化的扩展接口,鼓励第三方开发者在现有功能基础上进行创新,从而丰富了软件生态。然而,插件机制也有其局限性:插件开发通常只能对基准功能进行小幅度的增强,难以实现对底层逻辑的深度定制或重构,这限制了技术创新的深度和广度。

3、因此,这两种开发方式面临以下问题:

4、模块化开发在跨行业产品支持上存在不足,容易导致产品变得复杂和难以配置;

5、插件机制的扩展性有限,无法对基准功能进行根本性的调整。


技术实现思路

1、本申请提供了一种插件二次开发处理方法、装置、设备及存储介质,解决了模块化开发在跨行业产品支持上存在不足,容易导致产品变得复杂和难以配置,以及插件机制的扩展性有限,无法对基准功能进行根本性的调整的技术问题。

2、有鉴于此,本申请第一方面提供了一种插件二次开发处理方法,所述方法包括:

3、步骤s1、确定目标应用的对象树,所述对象树包括数据字典、画面结构、菜单接口以及二次开发类型;

4、步骤s2、若所述二次开发类型为调整增强型,则根据选定节点的类型判断是否支持插件二次开发;

5、步骤s3、若支持,则获取对所述选定节点的插件二次开发代码,否则进行限制提示;

6、步骤s4、对所述插件二次开发代码进行实时代码检查以及提示,并过滤显示与所述插件二次开发代码对应的开发元素;

7、步骤s5、根据所述二次开发类型以及所述插件二次开发代码对所述目标应用的第一应用对象模型进行聚合,得到所述目标应用的第二应用对象模型;

8、步骤s6、加载所述第二应用对象模型。

9、可选地, 所述步骤s2具体包括:

10、若所述二次开发类型为调整增强型,则判断选定节点的类型是否为enum类型节点、table类型节点、form类型节点、menuitem类型节点、menu类型节点或formdatasource类型节点中任一,若是,则支持插件二次开发,否则不支持插件二次开发。

11、可选地,所述步骤s1之后还包括:

12、若所述二次开发类型为增量型,则获取对所述目标应用的插件二次开发代码。

13、可选地,所述步骤s4具体包括:

14、当所述插件二次开发代码包含数据库查询语句时,判断所述数据库查询语句是否为查询引用当前插件对应数据,若是,则实时代码检查通过,否则进行引用无效提示;

15、过滤显示与所述当前插件对应的开发元素,所述开发元素包括类元素、方法元素以及变量元素。

16、可选地,所述步骤s5具体包括:

17、若所述二次开发类型为调整增强型,则以实体内容节点为单位,按照节点类型以及广度优先原则,将所述插件二次开发代码中的增量内容拟合至所述目标应用的第一应用对象模型中,得到所述目标应用的第二应用对象模型;

18、若所述二次开发类型为增量型,则以实体内容节点为单位,将所述插件二次开发代码中的所有内容合并至所述目标应用的第一应用对象模型中,得到所述目标应用的第二应用对象模型。

19、可选地,所述步骤s6具体包括:

20、基于双亲委派机制预先配置插件类加载器;

21、在基准应用加载器的基础上,横向拓展所述插件类加载器;

22、通过所述基准应用加载器以及所述插件类加载器加载所述第二应用对象模型。

23、可选地,所述步骤s6之后还包括:

24、对所述第二应用对象模型中table类型的对象采用字节码增强技术进行对象实例增强;

25、对所述第二应用对象模型中form类型的对象采用拦截方法执行进行对象实例增强。

26、本申请第二方面提供一种插件二次开发处理装置,所述装置包括:

27、对象树确定单元,用于确定目标应用的对象树,所述对象树包括数据字典、画面结构、菜单接口以及二次开发类型;

28、判断单元,用于若所述二次开发类型为调整增强型,则根据选定节点的类型判断是否支持插件二次开发;

29、处理单元,用于若支持,则获取对所述选定节点的插件二次开发代码,否则进行限制提示;

30、检查单元,用于对所述插件二次开发代码进行实时代码检查以及提示,并过滤显示与所述插件二次开发代码对应的开发元素;

31、聚合单元,用于根据所述二次开发类型以及所述插件二次开发代码对所述目标应用的第一应用对象模型进行聚合,得到所述目标应用的第二应用对象模型;

32、加载单元,用于加载所述第二应用对象模型。

33、本申请第三方面提供一种插件二次开发处理设备,所述设备包括处理器以及存储器:

34、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

35、所述处理器用于根据所述程序代码中的指令,执行如上述第一方面所述的插件二次开发处理的方法的步骤。

36、本申请第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的方法。

37、从以上技术方案可以看出,本申请实施例具有以下优点:

38、本申请中,提供了一种插件二次开发处理方法、装置、设备及存储介质,根据层应用对象树规范,支持插件在应用的基础之上进行调整型与增强型功能开发,在编码、启动、运行阶段,针对插件的代码语法、代码提示、模型拟合、加载器扩展等方式,实现应用插件的功能增强,让模块应用核心逻辑、个性化需求与行业需求三者之间达到一定的平衡,解决了模块化开发在跨行业产品支持上存在不足,容易导致产品变得复杂和难以配置,以及插件机制的扩展性有限,无法对基准功能进行根本性的调整的技术问题。

本文档来自技高网...

【技术保护点】

1.一种插件二次开发处理方法,其特征在于,包括:

2.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤S2具体包括:

3.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤S1之后还包括:

4.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤S4具体包括:

5.根据权利要求3所述的插件二次开发处理方法,其特征在于,所述步骤S5具体包括:

6.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤S6具体包括:

7.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤S6之后还包括:

8.一种插件二次开发处理装置,其特征在于,包括:

9.一种插件二次开发处理设备,其特征在于,所述设备包括处理器以及存储器:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-7任一项所述的插件二次开发处理方法。

【技术特征摘要】

1.一种插件二次开发处理方法,其特征在于,包括:

2.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤s2具体包括:

3.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤s1之后还包括:

4.根据权利要求1所述的插件二次开发处理方法,其特征在于,所述步骤s4具体包括:

5.根据权利要求3所述的插件二次开发处理方法,其特征在于,所述步骤s5具体包括:

6.根据权利要求1所述的...

【专利技术属性】
技术研发人员:张缪春
申请(专利权)人:浙江工企信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1