本技术涉及计算机处理,尤其涉及一种基于微应用架构的资源处理方法和装置、电子设备及存储介质。
背景技术:
1、目前,到店商家平台是基于java(面向对象的编程语言)vm模版(一种java模板,用于渲染页面)的前后端融合的架构,前后端页面未做分离,页面在切换菜单的时候,会全面刷新,造成资源浪费,亟待解决这一技术问题。
技术实现思路
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、通过应用列表的接口中与所述当前子应用的应用名匹配的子接口,拉取对应的所述当前子应用的资源内容。
37、在一种可能的实现方式中,所述查找模块还用于:
38、通过所述资源请求的路由,查询所述资源请求的路由中是否包括用于标识所述第一模式的字段;
39、若所述资源请求的路由中包括用于标识所述第一模式的字段,则确定所述资源请求是所述第一模式;
40、若所述资源请求的路由中未包括用于标识所述第一模式的字段,则确定所述资源请求不是所述第一模式。
41、在一种可能的实现方式中,所述第一渲染模块还用于:
42、对所述当前子应用进行激活,调用预设渲染方法进行渲染,同时卸载上一个渲染的子应用;
43、通过调用预设加载方法,根据所述当前子应用的资源内容渲染所述当前子应用。
44、在一种可能的实现方式中,所述第一渲染模块还用于:
45、通过调用预设加载方法,根据所述当前子应用的资源内容,将对应的页面元素定义样式、页面元素动态处理脚本、全局变量按照文档流的顺序渲染在页面上,同时通过预设脚本方法执行对应的页面元素动态处理脚本,相应的渲染页面。
46、在一种可能的实现方式中,所述装置还包括:
47、缓存模块,用于在所述第一渲染模块注册所述当前子应用,并根据所述当前子应用的资源内容渲染所述当前子应用之后,通过预读取文件夹的方式,对所述当前子应用的资源内容进行缓存,待下次渲染所述当前子应用时,从缓存中获取所述当前子应用的资源内容。
48、第三方面,提供了一种电子设备,该电子设备包括处理器和存储器,其中,所述存储器中存储有计算机程序,所述处理器被配置为运行所述计算机程序以执行上述任一项所述的基于微应用架构的资源处理方法。
49、第四方面,提供了一种存储介质,所述存储介质存储有计算机程序,其中,所述计算机程序被配置为运行时执行上述任一项所述的基于微应用架构的资源处理方法。
50、借由上述技术方案,本技术实施例提供的基于微应用架构的资源处理方法和装置、电子设备及存储介质,该方法构建包括主应用和至少一个子应用的微应用架构;其中,主应用包括前后端分离的第一模式和前后端融合的第二模式;响应于来自用户的资源请求,将资源请求发送至主应用的容器中,主应用通过资源请求的路由获得当前子应用的应用名;根据当前子应用的应用名,通过应用列表的接口拉取对应的当前子应用的资源内容;通过资源请求的路由,查询资源请求是否是第一模式;若资源请求是第一模式,则注册当前子应用,并根据当前子应用的资源内容渲染当前子应用;若资源请求不是第一模式,则采用第二模式渲染资源页面。可以看到,本技术实施例通过构建包括主应用和至少一个子应用的微应用架构来提供资源服务,主应用包括前后端分离的第一模式和前后端融合的第二模式,这样可以兼容适配第一模式和第二模式的场景;并且,通过资源请求的路由获得当前子应用的应用名,使得各个子应用具备独立部署和独立灰度的能力,相互之间不干扰,提升资源服务的能力。