System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据处理方法、系统、电子设备及存储介质技术方案_技高网

数据处理方法、系统、电子设备及存储介质技术方案

技术编号:41179752 阅读:2 留言:0更新日期:2024-05-07 22:14
本发明专利技术提供一种数据处理方法、系统、电子设备及存储介质,属于计算机技术领域。所述方法包括:获取编译的程序的二进制数据;确定未加载具有所述名称的资源文件到运行时数据区域;向当前的类加载器请求加载具有所述名称的资源文件,若找到该资源文件,则返回该资源文件的二进制数据,若未找到该资源文件,则将加载具有所述名称的资源文件的请求委派至类加载器子系统并执行双亲委派式加载,返回该资源文件的二进制数据。本发明专利技术可用于服务器的数据处理。

【技术实现步骤摘要】

本专利技术涉及计算机,具体地涉及一种数据处理方法、一种数据处理系统、一种电子设备和一种机器可读存储介质。


技术介绍

1、java语言的jar(java archive)包文件是归档的程序文件(例如web服务程序),包文件可以包括类文件(class file),包文件和类文件等资源文件可以是由编译器编译java源码获得的,资源文件中含有java虚拟机(java virtual machine,jvm)指令集,当程序在运行时系统中执行时,由jvm将指令集转译为机器码。数据密集型应用程序常常需要访问、存储大量数据,需要操作多种多版本的数据库,这需要与数据库匹配的驱动程序被加载,然而,不同版本的驱动程序在应用项目中具有相同的类名,例如jdbc(java databaseconnectivity)驱动,这会出现先被加载的驱动程序作为被用于各版本数据库的驱动程序,导致了连接异常或获取的数据异常,并致使数据库服务器离线,应用程序服务器数据服务中断。目前,常常通过设计新版本的驱动程序兼容旧版本的驱动程序,从而只需要加载单个版本的驱动程序,但这很难完全避免数据业务受到影响,同时限制了数据库类型、版本(不冲突)的使用以及容易出现数据泄漏的安全问题。


技术实现思路

1、本专利技术的目的是提供一种数据处理方法、系统、电子设备及存储介质,避免了数据库服务器和应用程序服务器的执行程序更新迭代版本导致的数据加载异常和业务中断的问题,进而实现了快速响应的数据服务、改善了应用程序服务器和数据库服务器的响应时间和数据服务的稳定性。

2、为了实现上述目的,本专利技术实施例提供一种数据处理方法,该数据处理方法包括:

3、获取编译的程序的二进制数据,其中,所述二进制数据具有通过全限定名方式定义的驱动程序资源文件的名称的表示,所述编译的程序被配置为由应用程序服务器执行,所述应用程序服务器与数据库服务器连接,所述驱动程序资源文件用于在所述编译的程序被所述应用程序服务器执行时,访问和/或操作所述数据库服务器中数据库;

4、确定未加载具有所述名称的资源文件到运行时数据区域;

5、向当前的类加载器请求加载具有所述名称的资源文件,若找到该资源文件,则返回该资源文件的二进制数据,

6、若未找到该资源文件,则将加载具有所述名称的资源文件的请求委派至类加载器子系统并执行双亲委派式加载,返回该资源文件的二进制数据。

7、具体的,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

8、通过所述当前的类加载器基于请求中的优先级标识符加载具有所述名称的资源文件。

9、具体的,其中,

10、所述当前的类加载器包括自定义类加载器;

11、具有所述名称的资源文件包括至少两个版本的资源文件;

12、所述至少两个版本的资源文件被按照各版本分组,并存储于指定的资源路径,各分组被标记有指定的优先级标识符。

13、具体的,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

14、通过所述当前的类加载器基于请求中的版本标识符,将具有所述版本标识符的资源文件反射加载为具有所述名称的资源文件。

15、具体的,其中,

16、所述当前的类加载器包括统一资源定位类加载器,该统一资源定位类加载器通过挂载的具有版本标识符的资源文件和获得的上下文类加载器进行实例化;

17、具有所述名称的资源文件包括至少两个版本的资源文件。

18、具体的,所述执行双亲委派式加载,包括:

19、依次采用系统类加载器、扩展类加载器和引导类加载器中一个加载器确定是否已加载,若已加载该资源文件,则返回该资源文件的二进制数据,

20、若未加载该资源文件,则委派该一个加载器的父类加载器进行确定是否已记载。

21、具体的,所述执行双亲委派式加载,还包括:

22、在所述父类加载器是所述引导类加载器时,若所述引导类加载器未加载该资源文件,则寻找指定的路径是否存在该资源文件,如果存在该资源文件,则返回该资源文件的二进制数据,

23、如果不存在该资源文件,则委派所述父类加载器的子类加载器寻找指定的路径是否存在该资源文件;

24、在所述子类加载器是所述系统类加载器时,如果也不存在该资源文件,则报告该资源文件缺失或无法找到该资源文件的错误。

25、本专利技术实施例提供一种数据处理系统,该数据处理系统包括:

26、获取模块,用于获取编译的程序的二进制数据,其中,所述二进制数据中通过全限定名方式定义有驱动程序资源的名称,所述编译的程序被配置为由应用程序服务器执行,所述应用程序服务器与数据库服务器连接,所述驱动程序资源用于在所述编译的程序被所述应用程序服务器执行时,访问和/或操作所述数据库服务器中数据库;

27、确定模块,用于确定未加载具有所述名称的资源文件到运行时数据区域;

28、加载模块,用于向当前的类加载器请求加载具有所述名称的资源文件,若找到该资源文件,则返回该资源文件的二进制数据,

29、所述加载模块用于若未找到该资源文件,则将加载具有所述名称的资源文件的请求委派至类加载器子系统并执行双亲委派式加载,返回该资源文件的二进制数据。

30、再一方面,本专利技术实施例提供一种电子设备,该电子设备包括:

31、至少一个处理器;

32、存储器,与所述至少一个处理器连接;

33、其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的方法。

34、又一方面,本专利技术实施例提供一种机器可读存储介质,存储有机器指令,当所述机器指令在机器上运行时,使得机器执行前述的方法。

35、本专利技术中当应用程序服务器中程序执行时,需要多版本的资源文件提供支持,经配置的当前的类加载器先于适用双亲委派模型的类加载器对类请求进行处理,利用当前的类加载器与适用双亲委派模型的类加载器属于不同的类加载器或隔离的线程,并由不同的类加载器独立加载资源文件,能够获得共存、多类型多版本的资源文件,实现数据库服务器多种数据库和多版本数据库访问。

36、本专利技术实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

本文档来自技高网...

【技术保护点】

1.一种数据处理方法,其特征在于,该数据处理方法包括:

2.根据权利要求1所述的数据处理方法,其特征在于,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

3.根据权利要求2所述的数据处理方法,其特征在于,其中,

4.根据权利要求1所述的数据处理方法,其特征在于,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

5.根据权利要求4所述的数据处理方法,其特征在于,其中,

6.根据权利要求3或5所述的数据处理方法,其特征在于,所述执行双亲委派式加载,包括:

7.根据权利要求6所述的数据处理方法,其特征在于,所述执行双亲委派式加载,还包括:

8.一种数据处理系统,其特征在于,该数据处理系统包括:

9.一种电子设备,其特征在于,该电子设备包括:

10.一种机器可读存储介质,存储有机器指令,当所述机器指令在机器上运行时,使得机器执行权利要求1至7中任意一项权利要求所述的方法。

【技术特征摘要】

1.一种数据处理方法,其特征在于,该数据处理方法包括:

2.根据权利要求1所述的数据处理方法,其特征在于,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

3.根据权利要求2所述的数据处理方法,其特征在于,其中,

4.根据权利要求1所述的数据处理方法,其特征在于,在返回该资源文件的二进制数据之前,该数据处理方法还包括:

5.根据权利要求4所述的数据处理方法,其特征在于,其中,

6...

【专利技术属性】
技术研发人员:石勇
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:

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

1