控制器方法实例的调用方法、装置、存储介质及服务器与流程



1.本技术涉及互联网领域,尤其涉及一种控制器方法实例的调用方法、装置、存储介质及服务器。


背景技术:



2.在web应用的开发过程中,无论是新开发的模块代码为了符合restful风格接口规范,还是老模块代码中的servlet处理迁移,都存在大量的带变量的接口访问请求。由于接口访问请求中带变量的原因,原生spring mvc架构对这种接口访问请求的处理性能非常低下,需要在元素数量为几万的原生映射表中进行遍历才能到所需的控制器方法实例handlermethod,这样spring mvc架构的响应时间会大大增加,在性能测试中,响应时间约为100毫秒,这样会严重响应用户体验。


技术实现要素:



3.本技术实施例提供了控制器方法实例的调用方法、装置、存储介质及服务器,可以解决现有技术中调用控制器方法实例响应速度慢的问题。所述技术方案如下:
4.第一方面,本技术实施例提供了一种控制器方法实例的调用方法,所述方法包括:
5.接收接口访问请求;其中,所述接口访问请求携带路径参数和所述路径参数的取值;
6.识别所述路径参数的取值的取值类型;
7.若所述取值类型为变量,根据所述路径参数的取值在变量映射表中进行查询;
8.若查询到与所述路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例;
9.若未查询到与所述路径参数的取值对应的控制器方法实例,根据所述接口访问请求在原生映射表中进行遍历,在所述原生映射表中获取遍历到的控制器方法实例的取值,调用遍历到的控制器方法实例,以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的路径参数的取值进行映射后生成映射关系信息,将生成的映射关系信息写入所述变量映射表中。
10.第二方面,本技术实施例提供了一种控制器方法实例的调用装置,所述装置包括:
11.收发单元,用于接收接口访问请求;其中,所述接口访问请求携带路径参数和所述路径参数的取值;
12.识别单元,用于识别所述路径参数的取值的取值类型;
13.查询单元,用于若所述取值类型为变量,根据所述路径参数的取值在变量映射表中进行查询;
14.调用单元,用于若查询到与所述路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例;
15.写入单元,用于若未查询到与所述路径参数的取值对应的控制器方法实例,根据
所述接口访问请求在原生映射表中进行遍历,在所述原生映射表中获取遍历到的控制器方法实例的取值,调用遍历到的控制器方法实例,以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的路径参数的取值进行映射后生成映射关系信息,将生成的映射关系信息写入所述变量映射表中。
16.第三方面,本技术实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
17.第四方面,本技术实施例提供一种服务器,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
18.本技术一些实施例提供的技术方案带来的有益效果至少包括:
19.本技术的实施例在调用控制器方法实例时,接收到带变量的接口访问请求时,可以首先在变量映射表中进行查询,变量映射表中缓存有在原生映射表中先前查询到的映射关系信息,如果在变量映射表中得到查询结果,则直接调用对应的控制器方法实例,极大提高查控制器方法实例的速度和效率,避免每次都在原生映射表中进行查询,时间复杂度由o(n)降低为o(1)。如果没有在变量映射表中得到查询结果,则现在原生映射表中进行遍历得到遍历结果,将遍历的映射关系信息缓存到常量映射表中,在下次接收到接口访问请求,可以直接在变量映射表中进行查询得到查询结果。
附图说明
20.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
21.图1是本技术实施例提供的网络架构示意图;
22.图2是本技术实施例提供的控制器方法实例的调用方法的流程示意图;
23.图3是本技术提供的一种控制器方法实例的调用装置的结构示意图;
24.图4是本技术提供的一种服务器的结构示意图。
具体实施方式
25.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作进一步地详细描述。
26.需要说明的是,本技术提供的控制器方法实例的调用方法一般由服务器执行,相应的,控制器方法实例的调用装置一般设置于服务器中。
27.图1示出了可以应用于本技术的控制器方法实例的调用方法或控制器方法实例的调用装置的示例性系统架构。
28.如图1所示,系统架构可以包括:计算机设备101和服务器102。计算机设备101和服务器102之间可以通过网络进行通信,网络用于上述各个单元之间提供通信链路的介质。网络可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆等,无线通信链路包括蓝牙通信链路、无线保真(wireless-fidelity,wi-fi)通信链路或微波通信链路等。
29.其中,服务器102中部署有spring mvc架构,spring mvc架构是一个基于java的实现了mvc设计模式的请求驱动类型的轻量级web框架,通过把model、view、controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
30.需要说明的是,计算机设备101和服务器102可以是硬件,也可以是软件。当计算机设备101和服务器102为硬件时,可以实现成多个服务器组成的分布式服务器集,也可以实现成单个服务器。当计算机设备101和服务器102为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
31.本技术的计算机设备上可以安装有各种通信客户端应用,例如:视频录制应用、视频播放应用、语音交互应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
32.计算机设备可以是硬件,也可以是软件。当计算机设备为硬件时,可以是具有显示屏的各种计算机设备,包括但不限于智能手机、平板电脑、膝上型便携式计算机和台式计算机等等。当计算机设备为软件时,可以是安装上述所列举的计算机设备中。其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
33.当计算机设备为硬件时,其上还可以安装有显示设备和摄像头,显示设备显示可以是各种能实现显示功能的设备,摄像头用于采集视频流;例如:显示设备可以是阴极射线管显示器(cathode ray tube display,简称cr)、发光二极管显示器(light-emitting diode display,简称led)、电子墨水屏、液晶显示屏(liquid crystal display,简称lcd)、等离子显示面板(plasma display panel,简称pdp)等。用户可以利用计算机设备上的显示设备,来查看显示的文字、图片、视频等信息。
34.应理解,图1中的计算机设备、网络和服务器的数目仅是示意性的。根据实现需要,可以是任意数量的计算机设备、网络和服务器。
35.下面将结合附图2,对本技术实施例提供的控制器方法实例的调用方法进行详细介绍。其中,本技术实施例中的控制器方法实例的调用装置可以是图1所示的服务器。
36.请参见图2,为本技术实施例提供了一种控制器方法实例的调用方法的流程示意图。如图2所示,本技术实施例的所述方法可以包括以下步骤:
37.s201、接收接口访问请求。
38.在本技术实施例中,用户通过终端设备的浏览器向服务器发送接口访问请求,接口访问请求用于控制器方法实例handlermethod,服务器中部署的spring mvc架构,spring mvc架构安装有多个控制器方法实例。接口访问请求中携带路径参数和路径参数的取值,路径参数的取值表示控制器方法实例的索引。
39.例如:用户发起的接口访问请求表示为:/reset/{callname}/{methodname},/org/{i},/user/{i},org/{i}中org表示的路径参数为组织标识,大括号中i表示对应的组织标识的取值;user/{i}表示的路径参数为用户标识,大括号中的i表示用户标识的取值。callname表示调用名称的取值,methodname表示控制器方法实例名称的取值。
40.s202、识别路径参数的取值的取值类型。
41.在本技术实施例中,取值类型包括常量和变量,常量即路径取值为确定值,变量表示路径取值为不确定值。例如:根据s201中的例子,用户标识的取值为i,i为不确定值,那么
该路径参数的取值类型为变量。如果用户标识的取值表示为user/{10},显而易见,该路径参数的取值类型为常量。
42.s203、若取值类型为变量,根据路径参数的取值在变量映射表中进行查询。
43.在本技术实施例中,若根据s202的识别结果确定取值类型为变量,根据路径的取值在预设的变量映射表中进行查询,变量映射表中缓存有表示路径参数的取值和控制器方法实体的id之间的映射关系的映射关系信息,变量映射表中可存储多条映射关系信息,根据路径参数的数值范围将取值由变量修改为常量,然后基于修改后的路径参数的取值在变量映射表中进行查询。变量映射表为现有的spring mvc架构中扩展的映射表,原生映射表中spring mvc架构中自带的映射表,例如:原生映射表为requestmappinghandlermapping,变量映射表为variablepathhandlermapping。
44.举例来说:变量映射表中存储的2条映射关系信息表示为:《user/{1},handlermethod1》,《user/{10},handlermethod5》,根据路径参数的取值的数值范围,将路径参数的取值user/{i}修改为常量user/{1},然后基于user/{1}在变量映射表中进行查询,只需要查询一次即可查询到结果。进一步的,变量映射表为哈希映射表,根据修改后的路径参数的取值采用在哈希映射表中进行查询,复杂度为o(1)。
45.s204、若查询到与路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例。
46.在本技术实施例中,若在变量映射表中查询到路径参数的取值关联的控制器方法实例的id,调用该控制器方法实例,然后将控制器方法实例的响应数据返回给用户。
47.s205、若未查询到与路径参数的取值对应的控制器方法实例,根据接口访问请求在原生映射表中进行遍历,在原生映射表中获取遍历到的控制器方法实例的取值,调用遍历到的控制器方法实例以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的取值进行映射后生成映射关系信息,将生成的映射关系信息写入变量映射表中。
48.在本技术实施例中,若接口访问请求为首次访问,则无法再变量映射表中得到查询结果,此时根据接口访问请求中的其他参数的数值在原生映射表中进行遍历,原生映射表中存储有控制器方法实例的id和指定参数的数值之间的映射关系。原生映射表中一般存放有多个元素,假设数量为n,那么遍历的时间复杂度为o(n)。
49.进一步的,接口访问请求还携带调用名称的取值和控制器方法实例名称的取值,例如:s201的例子中,callname表示调用名称的取值,methodname表示控制器方法实例名称的取值,根据上述的取值在原生映射表中进行遍历,由于原生映射表中存放有完备的映射关系信息,因此最终总能得到遍历结果。
50.在本技术实施例中,将在原生映射表中遍历到的控制器方法实例的id和遍历到的控制器方法实例的取值进行映射后生成映射关系信息,将生成的映射关系信息写入变量映射表中,那么下次再次接收到接口访问请求时,可以直接在变量映射表中直接查询得到查询结果,时间复杂度由o(n)降低为o(1),极大提高查控制器方法实例的效率,提高响应速度。
51.在本技术实施例中,若s201中路径参数的取值为常量,基于现有的遍历方法在原生映射表中进行查询,此处不再赘述,时间复杂度为o(1)。进一步的,原生映射表为哈希映射表,那么基于哈希算法在原生映射表中进行查询,可以提高查询速度和效率。
52.在本技术实施例中,所述将生成的映射关系信息写入所述变量映射表中,包括:
53.判断所述映射关系表中的剩余空间大小是否大于空间阈值;
54.若为是,将生成的映射关系信息写入所述变量关系表;
55.若为否,在所述变量映射表中删除未使用时间最长的映射关系信息,删除后将生成的映射关系信息写入到所述变量映射表中。
56.其中,映射关系表可设置多个大小相等的存储单元,每个存储单元存放一条映射关系信息,当映射关系表中空闲状态的存储单元的数量小于数量阈值时,那么表示映射关系表的剩余空间不足,空间阈值由上述的数量阈值决定,例如:每个存储单元的大小为1字节,数量阈值为4个,那么空间阈值为4字节,空间阈值的大小可根据实际需求调节,此处不作限制。若剩余空间大于空间阈值,则直接将生成的映射关系信息写入到原生映射表中;若剩余空间不大于空间阈值,统计原生映射表中各个映射关系信息未使用时间,未使用时间表示当前时刻和上次使用的时刻之间的时长,将未使用时间最大的映射关系信息进行删除,然后再写入生成的映射关系信息,可以在保证命中率的情况下提高原生映射表的空间利用率。
57.在本技术实施例中,所述变量映射表部署在spring mvc架构的框架层,所述接口访问请求来自spring mvc的业务层,即仅对框架层的代码进行修改,业务层在基于接口访问请求调用框架层中的控制器方法实例时无感知,业务层的代码无需作修改,不破坏现有的业务逻辑,减轻后续的维护和开发的工作量。
58.本技术的实施例在调用控制器方法实例时,接收到带变量的接口访问请求时,可以首先在变量映射表中进行查询,变量映射表中缓存有在原生映射表中先前查询到的映射关系信息,如果在变量映射表中得到查询结果,则直接调用对应的控制器方法实例,极大提高查控制器方法实例的速度和效率,避免每次都在原生映射表中进行查询,时间复杂度由o(n)降低为o(1)。如果没有在变量映射表中得到查询结果,则现在原生映射表中进行遍历得到遍历结果,将遍历的映射关系信息缓存到常量映射表中,在下次接收到接口访问请求,可以直接在变量映射表中进行查询得到查询结果。
59.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
60.请参见图3,其示出了本技术一个示例性实施例提供的控制器方法实例的调用装置的结构示意图,以下简称装置3。该装置3可以通过软件、硬件或者两者的结合实现成为服务器的全部或一部分。装置3包括:收发单元301、识别单元302、查询单元303、调用单元304、写入单元305。
61.收发单元301,用于接收接口访问请求;其中,所述接口访问请求携带路径参数和所述路径参数的取值;
62.识别单元302,用于识别所述路径参数的取值的取值类型;
63.查询单元,用于若所述取值类型为变量,根据所述路径参数的取值在变量映射表中进行查询;
64.调用单元303,用于若查询到与所述路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例;
65.写入单元304,用于若未查询到与所述路径参数的取值对应的控制器方法实例,根
据所述接口访问请求在原生映射表中进行遍历,在所述原生映射表中获取遍历到的控制器方法实例的取值,调用遍历到的控制器方法实例,以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的路径参数的取值进行映射后生成映射关系信息,将生成的映射关系信息写入所述变量映射表中。
66.在一个或多个可能的实施例中,调用单元303还用于:
67.若所述取值类型为常量,根据所述访问路径请求在所述原生映射表中进行遍历,以及调用遍历到的控制器方法实例。
68.在一个或多个可能的实施例中,所述接口访问请求还携带调用名称的取值和控制器方法实例名称的取值;控制器方法实例是根据调用名称的取值和控制器方法实例名称的取值在所述原生映射表中遍历得到的。
69.在一个或多个可能的实施例中,所述将生成的映射关系信息写入所述变量映射表中,包括:
70.判断所述映射关系表中的剩余空间大小是否大于空间阈值;
71.若为是,将生成的映射关系信息写入所述变量关系表;
72.若为否,在所述变量映射表中删除未使用时间最长的映射关系信息,删除后将生成的映射关系信息写入到所述变量映射表中。
73.在一个或多个可能的实施例中,所述变量映射表和所述原生映射表为哈希映射表。
74.在一个或多个可能的实施例中,所述变量映射表部署在spring mvc架构的框架层,所述接口访问请求来自spring mvc的业务层。
75.在一个或多个可能的实施例中,所述路径参数包括用户标识和/或组织标识。
76.需要说明的是,上述实施例提供的装置3在执行控制器方法实例的调用方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成上述的全部或者部分功能。另外,上述实施例提供的控制器方法实例的调用装置与控制器方法实例的调用方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
77.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
78.本技术实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图2所示实施例的方法步骤,具体执行过程可以参见图2所示实施例的具体说明,在此不进行赘述。
79.本技术还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的控制器方法实例的调用方法。
80.请参见图4,为本技术实施例提供了一种服务器的结构示意图。如图4所示,所述服务器400可以包括:至少一个处理器401,至少一个网络接口404,存储器405,至少一个通信总线402。
81.其中,通信总线402用于实现这些组件之间的连接通信。
82.可选的,服务器400还包括:用户接口403,用户接口403可以包括显示屏(display)、摄像头(camera),用户接口403还可以包括标准的有线接口、无线接口。
83.其中,网络接口404可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
84.其中,处理器401可以包括一个或者多个处理核心。处理器401利用各种接口和线路连接整个服务器400内的各个部分,通过运行或执行存储在存储器405内的指令、程序、代码集或指令集,以及调用存储在存储器405内的数据,执行服务器400的各种功能和处理数据。可选的,处理器401可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logicarray,pla)中的至少一种硬件形式来实现。处理器401可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器401中,单独通过一块芯片进行实现。
85.其中,存储器405可以包括随机存储器(randomaccess memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器405包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器405可用于存储指令、程序、代码、代码集或指令集。存储器405可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器405可选的还可以是至少一个位于远离前述处理器401的存储装置。如图4所示,作为一种计算机存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。
86.在图4所示的服务器400中,用户接口403主要用于为用户提供输入的接口,获取用户输入的数据;而处理器401可以用于调用存储器405中存储的应用程序,并具体执行如图2所示的方法,具体过程可参照图2所示,此处不再赘述。
87.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
88.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。

技术特征:


1.一种控制器方法实例的调用方法,其特征在于,包括:接收接口访问请求;其中,所述接口访问请求携带路径参数和所述路径参数的取值;识别所述路径参数的取值的取值类型;若所述取值类型为变量,根据所述路径参数的取值在变量映射表中进行查询;若查询到与所述路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例;若未查询到与所述路径参数的取值对应的控制器方法实例,根据所述接口访问请求在原生映射表中进行遍历,在所述原生映射表中获取遍历到的控制器方法实例的取值,调用遍历到的控制器方法实例,以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的路径参数的取值进行映射后生成映射关系信息,将生成的映射关系信息写入所述变量映射表中。2.根据权利要求1所述的方法,其特征在于,还包括:若所述取值类型为常量,根据所述访问路径请求在所述原生映射表中进行遍历,以及调用遍历到的控制器方法实例。3.根据权利要求1或2所述的方法,其特征在于,所述接口访问请求还携带调用名称的取值和控制器方法实例名称的取值;控制器方法实例是根据调用名称的取值和控制器方法实例名称的取值在所述原生映射表中遍历得到的。4.根据权利要求3所述的方法,其特征在于,所述将生成的映射关系信息写入所述变量映射表中,包括:判断所述映射关系表中的剩余空间大小是否大于空间阈值;若为是,将生成的映射关系信息写入所述变量关系表;若为否,在所述变量映射表中删除未使用时间最长的映射关系信息,删除后将生成的映射关系信息写入到所述变量映射表中。5.根据权利要求1或2或4所述的方法,其特征在于,所述变量映射表和所述原生映射表为哈希映射表。6.根据权利要求5所述的方法,其特征在于,所述变量映射表部署在spring mvc架构的框架层,所述接口访问请求来自spring mvc的业务层。7.根据权利要求1或2或4或6所述的方法,其特征在于,所述路径参数包括用户标识和/或组织标识。8.一种控制器方法实例的调用装置,其特征在于,包括:收发单元,用于接收接口访问请求;其中,所述接口访问请求携带路径参数和所述路径参数的取值;识别单元,用于识别所述路径参数的取值的取值类型;查询单元,用于若所述取值类型为变量,根据所述路径参数的取值在变量映射表中进行查询;调用单元,用于若查询到与所述路径参数的取值对应的控制器方法实例,调用查询到的控制器方法实例;写入单元,用于若未查询到与所述路径参数的取值对应的控制器方法实例,根据所述接口访问请求在原生映射表中进行遍历,在所述原生映射表中获取遍历到的控制器方法实
例的取值,调用遍历到的控制器方法实例,以及将遍历到的控制器方法实例的id和遍历到的控制器方法实例的路径参数的取值进行映射后生成映射关系信息,将生成的映射关系信息写入所述变量映射表中。9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~7任意一项的方法步骤。10.一种服务器,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~7任意一项的方法步骤。

技术总结


本申请实施例公开了一种控制器方法实例的调用方法、装置、存储介质及服务器,涉及互联网领域。本申请在调用控制器方法实例时,接收到带变量的接口访问请求时,可以首先在变量映射表中进行查询,变量映射表中缓存有在原生映射表中先前查询到的映射关系信息,如果在变量映射表中得到查询结果,则直接调用对应的控制器方法实例,极大提高查控制器方法实例的速度和效率,避免每次都在原生映射表中进行查询,时间复杂度由O(n)降低为O(1)。时间复杂度由O(n)降低为O(1)。时间复杂度由O(n)降低为O(1)。


技术研发人员:

金辉 程冲 曾至

受保护的技术使用者:

远光软件股份有限公司

技术研发日:

2022.07.27

技术公布日:

2022/11/1

本文发布于:2024-09-22 14:23:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/25450.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   方法   控制器   实例
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议