System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ioc整合js与java的方法与装置制造方法及图纸_技高网

一种基于ioc整合js与java的方法与装置制造方法及图纸

技术编号:42712929 阅读:15 留言:0更新日期:2024-09-13 12:03
本发明专利技术涉及一种基于ioc整合js与java的方法与装置,属于计算机技术领域,通过在java环境中编写js预设功能,将js预设功能注入spring容器;定义java函数配置类,依据java函数配置类从spring容器中获取容器对象,并保留java函数配置类的句柄;配置js可访问的java对象,从spring容器中取出对应对象,保留在配置文件中;依据对应对象配置全局js对象,设置全局js对象的属性为java的引用;采用全局js对象拼接js代码,调用graalvm沙箱接口执行对应的java对象。本发明专利技术通过结合js的解释性语言的执行高效的特性,graalvm的安全性,与spring控制反转的特性,使得java与js的通信形成了一条高效,安全,可复用的通路。

【技术实现步骤摘要】

本专利技术属于计算机,尤其涉及一种基于ioc整合js与java的方法与装置


技术介绍

1、随着产品的快速迭代,以及各种开发模型,“瀑布形”,“螺旋形”“快速迭代”等多种开发模型的衍生,市场上急需一个能快速搭建应用并投入使用的方案、或者平台,因此“低代码平台”应运而生。

2、作为“低”代码,在某些复杂功能中,避免不了写代码。js,这种解释性语言在此场景下作为不二之选。但是原始的js,功能比较单一,对于许多功能,都需要手动实现、或者复制一份代码。虽然es6,common-js的出现解决了这个问题。但是里面包含了特定对象,如“window”等,某些功能需要在特定环境才能运行,如浏览器。因此具备一定的局限性。

3、结合以上两点,第一、需要使用js,第二、js功能暂时不能满足,因此,需要结合js以及一种成熟的,“功能丰富”,可复用的“工具”相结合。


技术实现思路

1、鉴于以上现有技术的不足,专利技术的目的在于提供一种基于ioc整合js与java的方法与装置,基于graalvm多语言环境,结合spring ioc特性,整合js与java,使得java与js的相互调用更方便,灵活,高效。

2、本专利技术的第一方面,提出了一种基于ioc整合js与java的方法,包括:

3、s1,在java环境中编写js预设功能,将所述js预设功能注入spring容器;

4、s2,定义java函数配置类,依据所述java函数配置类从所述spring容器中获取容器对象,并保留所述java函数配置类的句柄;

5、s3,配置js可访问的java对象,从所述spring容器中取出对应对象,保留在配置文件中;

6、s4,依据所述对应对象配置全局js对象,设置所述全局js对象的属性为java的引用;

7、s5,采用所述全局js对象拼接js代码,调用graalvm沙箱接口执行对应的java对象。

8、进一步地,所述s1中在java环境中编写js预设功能,将所述js预设功能注入spring容器还包括:

9、所述s1中在java环境中编写的js预设功能为在js中实现难度大于预设值的功能;

10、所述js预设功能至少包括:

11、分布式锁、redis缓存、本地缓存、多线程处理、表格数据读取、写入。

12、进一步地,所述s2中定义java函数配置类,依据所述java函数配置类从所述spring容器中获取容器对象,并保留所述java函数配置类的句柄,还包括:

13、定义java函数配置类,所述java函数配置类通过自动注入和对象获取方式,从所述spring容器获取想要提供给js代码调用的java方法或者可以访问的java类,并保留类的句柄;

14、所述句柄为与客户端js调用方约定,采用全局js对象执行调用方法。

15、进一步地,所述s3中配置js可访问的java对象,从所述spring容器中取出对应对象,保留在配置文件中,还包括:

16、解析定义的所述java函数配置类,获取里面从所述spring容器获取到的需要注入js引擎的对象和类。

17、进一步地,所述s5中采用所述全局js对象拼接js代码,调用graalvm沙箱接口执行对应的java对象,还包括:

18、获取到所述java函数配置类里面的所有对象或者静态类,按照约定的调用方法定义java对象和js代码的调用映射关系并获取所述java对象对应的js对象;

19、将所述js对象嵌套在用户写的自定义代码的起始位置,自定义代码里面用户通过约定的调用方法预置对象方法或者属性;

20、将拼接好的js代码,交由graalvm沙箱执行,在执行前,设置java访问白名单;

21、在执行过程中,如果遇到预设类型语句,则从js预置对象里面寻找相关的java对象,查找到相关的java对象后,调用对应的java方法;

22、调用完后继续执行其他js代码,完成整块自定义代码的执行。

23、根据本专利技术第二方面,本专利技术请求保护一种基于ioc整合js与java的装置,包括:

24、注入模块,在java环境中编写js预设功能,将所述js预设功能注入spring容器;

25、函数配置模块,定义java函数配置类,依据所述java函数配置类从所述spring容器中获取容器对象,并保留所述java函数配置类的句柄;

26、对象配置模块,配置js可访问的java对象,从所述spring容器中取出对应对象,保留在配置文件中;

27、引用配置模块,依据所述对应对象配置全局js对象,设置所述全局js对象的属性为java的引用;

28、对象执行模块,采用所述全局js对象拼接js代码,调用graalvm沙箱接口执行对应的java对象。

29、进一步地,所述注入模块,还包括:

30、在java环境中编写的js预设功能为在js中实现难度大于预设值的功能;

31、所述js预设功能至少包括:

32、分布式锁、redis缓存、本地缓存、多线程处理、表格数据读取、写入。

33、进一步地,所述函数配置模块,还包括:

34、定义java函数配置类,所述java函数配置类通过自动注入和对象获取方式,从所述spring容器获取想要提供给js代码调用的java方法或者可以访问的java类,并保留类的句柄;

35、所述句柄为与客户端js调用方约定,采用全局js对象执行调用方法。

36、进一步地,所述对象配置模块,还包括:

37、解析定义的所述java函数配置类,获取里面从所述spring容器获取到的需要注入js引擎的对象和类。

38、进一步地,所述对象执行模块,还包括:

39、获取到所述java函数配置类里面的所有对象或者静态类,按照约定的调用方法定义java对象和js代码的调用映射关系并获取所述java对象对应的js对象;

40、将所述js对象嵌套在用户写的自定义代码的起始位置,自定义代码里面用户通过约定的调用方法预置对象方法或者属性;

41、将拼接好的js代码,交由graalvm沙箱执行,在执行前,设置java访问白名单;

42、在执行过程中,如果遇到预设类型语句,则从js预置对象里面寻找相关的java对象,查找到相关的java对象后,调用对应的java方法;

43、调用完后继续执行其他js代码,完成整块自定义代码的执行。

44、本专利技术有益效果如下:

45、本专利技术在保障功能完善上、js与java通信方式不变。沙箱由nashorn替换为graalvm,可调用的java方法由静态方法扩展到所有方法。

46、在功能方面,该方案,由原本的静态方法本文档来自技高网...

【技术保护点】

1.一种基于ioc整合js与java的方法,其特征在于,包括:

2.根据权利要求1所述的一种基于ioc整合js与java的方法,其特征在于,所述S1中在java环境中编写js预设功能,将所述js预设功能注入spring容器还包括:

3.根据权利要求2所述的一种基于ioc整合js与java的方法,其特征在于,所述S2中定义java函数配置类,依据所述java函数配置类从所述spring容器中获取容器对象,并保留所述java函数配置类的句柄,还包括:

4.根据权利要求3所述的一种基于ioc整合js与java的方法,其特征在于,所述S3中配置js可访问的java对象,从所述spring容器中取出对应对象,保留在配置文件中,还包括:

5.根据权利要求3所述的一种基于ioc整合js与java的方法,其特征在于,所述S5中采用所述全局js对象拼接js代码,调用graalvm沙箱接口执行对应的java对象,还包括:

6.一种基于ioc整合js与java的装置,其特征在于,包括:

7.根据权利要求6所述的一种基于ioc整合js与java的装置,其特征在于,所述注入模块,还包括:

8.根据权利要求7所述的一种基于ioc整合js与java的装置,其特征在于,所述函数配置模块,还包括:

9.根据权利要求8所述的一种基于ioc整合js与java的装置,其特征在于,所述对象配置模块,还包括:

10.根据权利要求9所述的一种基于ioc整合js与java的装置,其特征在于,所述对象执行模块,还包括:

...

【技术特征摘要】

1.一种基于ioc整合js与java的方法,其特征在于,包括:

2.根据权利要求1所述的一种基于ioc整合js与java的方法,其特征在于,所述s1中在java环境中编写js预设功能,将所述js预设功能注入spring容器还包括:

3.根据权利要求2所述的一种基于ioc整合js与java的方法,其特征在于,所述s2中定义java函数配置类,依据所述java函数配置类从所述spring容器中获取容器对象,并保留所述java函数配置类的句柄,还包括:

4.根据权利要求3所述的一种基于ioc整合js与java的方法,其特征在于,所述s3中配置js可访问的java对象,从所述spring容器中取出对应对象,保留在配置文件中,还包括:

5.根据权利要求3...

【专利技术属性】
技术研发人员:敖富强
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1