服务接口配置方法、装置、设备及存储介质与流程

专利2022-05-10  42



1.本发明涉及接口配置领域,尤其涉及一种服务接口配置方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.spi(服务接口)已经由jdk(java语言的软件开发工具包)提供,但是现在的spi有很大的冗余部分,例如:必须要添加接口全限定名的配置文件,需要全部加载meta/inf/services/***文件的实现类以及进行实例化。存在以下问题:
3.当创建一个新的服务接口时,需要相应的创建配套的服务接口实现和meta_inf/services下接口的全限定名文件,必须在接口全限定名文件中追加相应的实现类全限定名,例如:springboot启动加载时添加zookeeper相关配置属性,就需要在meta_inf/spring.factories文件中添加对应的实现全限定名称,通过java.util.serviceloader加载资源文件时,会将所有的spi接口实现类全部读取并实例化,一次性加载全部实现类,无法进行功能指定开启,容易出现内存资源浪费的情况。


技术实现要素:

4.本发明提供一种服务接口配置方法、装置、电子设备及计算机可读存储介质,其主要目的在于能够解决现有技术中,实现类全部读取并实例化,一次性加载全部实现类,容易出现内存资源浪费的情况等问题。
5.第一方面,为实现上述目的,本发明提供的一种服务接口配置方法,所述方法包括:
6.对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合;其中,在所述预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与所述接口实现类注解相对应的预设属性;所述预设属性的类型包括立即生效的属性和非立即生效的属性;
7.从所述预设自定义服务接口中获取所述接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类;
8.通过从预设基础缓存容器中获取的与所述生效实现类相匹配的实例化对象,对所述生效实现类进行实例化处理,得到对外服务对象;其中,所述预设基础缓存容器用于储存所述接口实现类注解对应的实现类和与所述接口实现类注解对应的实现类相匹配的实例化对象;
9.将所述对外服务对象存储至实例化缓存容器和将所述缓存实现类以及与所述缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成所述预设自定义服务接口的配置。
10.第二方面,为了解决上述问题,本发明还提供一种服务接口配置装置,所述装置包
括:
11.感知扫描模块,用于对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合;其中,在所述预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与所述接口实现类注解相对应的预设属性;所述预设属性的类型包括立即生效的属性和非立即生效的属性;
12.接口实现类注解获取模块,用于从所述预设自定义服务接口中获取所述接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类;
13.实例化模块,用于通过从预设基础缓存容器中获取的与所述生效实现类相匹配的实例化对象,对所述生效实现类进行实例化处理,得到对外服务对象;其中,所述预设基础缓存容器用于储存所述接口实现类注解对应的实现类和与所述接口实现类注解对应的实现类相匹配的实例化对象;
14.存储模块,用于将所述对外服务对象存储至实例化缓存容器和将所述缓存实现类以及与所述缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成所述预设自定义服务接口的配置。
15.第三方面,为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
16.至少一个处理器;以及,
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的服务接口配置方法的步骤。
19.第四方面,为了解决上述问题,本发明还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的服务接口配置方法。
20.本发明提出的服务接口配置方法、装置、电子设备及存储介质,通过预设自定义服务接口,预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与接口实现类注解相对应的预设属性;预设属性的类型包括立即生效的属性和非立即生效的属性可根据预设属性的类型分情况对服务接口内的实现类进行实例化,对于非立即生效的接口实现类可先缓存起来,节约内存,避免内部资源的浪费;对于接口服务提供者端,再添加新的服务接口,无需再进行复杂的配置全流程,尤其是配置多个服务接口时,可以不用对新增的服务接口多次配置,直接使用服务接口注解以及接口实现类注解以及预设属性在接口和接口实现类上,在需要作为服务的接口内进行生命,即可提供接口服务;而且对于接口实现类,可以进行指定启动是否加载到容器,避免了一次性全部加载所有接口实现类,大大简化代码开发流程。
附图说明
21.图1为本发明一实施例提供的服务接口配置方法的流程示意图;
22.图2为本发明一实施例提供的服务接口配置装置的模块示意图;
23.图3为本发明一实施例提供的实现服务接口配置方法的电子设备的内部结构示意图;
24.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
25.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
26.本发明提供一种服务接口配置方法。参照图1所示,为本发明一实施例提供的服务接口配置方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
27.在本实施例中,服务接口配置方法包括:
28.步骤s110、对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合;其中,在预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与所述接口实现类注解相对应的预设属性;预设属性的类型包括立即生效的属性和非立即生效的属性。
29.具体的,由于在预设自定义服务接口内部预先创建有服务接口注解,通过该服务接口注解能够对预设自定义服务接口进行感知扫描,将服务平台或者服务系统中的所有接口进行扫描后,对接口内部带有服务接口注解的接口进行感知,从而能够快速知晓哪些是服务接口,哪些是非服务接口。无需在使用服务接口时,现指定服务接口,通过预设自定义服务接口能够快速为使用者提供服务,省去指定服务接口,创建服务接口文件等复杂步骤。
30.作为本发明的一个可选实施例,在对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合之前,还包括:
31.对待配置服务接口进行服务接口声明注解处理,使待配置服务接口标明为对外提供服务的接口,得到声明的服务接口;
32.对声明的服务接口进行接口实现类注解处理,得到带有实现类注解的服务接口;
33.根据预设接口实现类属性指定规则,对带有实现类注解的服务接口的接口实现类注解进行相应的属性指定处理,得到预设自定义服务接口;其中,预设接口实现类属性指定规则包括接口实现类注解和与接口实现类注解对应的预设属性。
34.具体的,通过计算机编程语言对待配置服务接口进行服务接口声明注解,通过服务接口声明注解能够明确哪些是服务接口哪些是非服务接口,其中,待配置服务接口中哪些作为服务接口可根据接口创建时的指定,当使用方在使用时,无需再指定接口和在接口路径下创建文件,通过预先创建的服务接口注解能够简单明了的表明该接口为服务接口,并非其它接口;通过预先创建的接口实现类注解能够具体的表明该服务接口能够实现的服务实现类;通过对接口实现类注解指定预设属性能够表明服务接口是否立即进行实例化,可根据需要指定预设属性,对于暂时不使用的预设自定义服务接口的某个接口实现类可设定为非立即生效的属性,可避免原生服务接口初始化加载全部服务接口,导致内存被一次性占用过多,出现的资源浪费的问题,并且给服务接口创建不同的接口实现类时,只需要添加接口实现类注解即可;不用再使用原生服务接口配置方式进行手动创建资源文件,以及避免每创建一个新的接口实现类都要在文件中追加接口实现类的内容。
35.作为本发明的一个可选实施例,预设自定义服务接口存储于区块链中,对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合包括:
36.根据获取的服务接口配置指令,通过编译器对所述服务接口注解进行解码处理,得到所述服务接口注解的译码;
37.根据服务接口注解的译码,对预设自定义服务接口进行感知扫描处理,得到预设
自定义服务接口的接口集合。
38.具体的,当处理器收到服务接口配置指令时,通过编译器对服务接口注解进行解码处理,得到服务接口注解的译码,其中,服务接口注解的译码为机器可理解的语言,由于服务接口注解一般是通过计算机编程语言技术完成的注解,因此需要将服务接口注解翻译成机器之间约定的译码,通过对服务接口注解的译码的识别,对预设自定义服务接口进行感知扫描,将所有的预设自定义服务接口集合在一起后得到接口集合。
39.步骤s120、从预设自定义服务接口中获取接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
40.具体的,预设自定义服务接口中的接口实现类注解根据预设属性的种类分为两类,一类是立即生效的接口实现类注解,另一类是非立即生效的接口实现类注解;接口实现类注解是对接口实现类的声明,因此,每个接口实现类注解均对应有实现类。立即生效的接口实现类注解所对应的接口实现类可先进行实例化得到服务对象后直接为使用者提供服务,而非立即生效的接口实现类注解对应的实现类可先缓存起来,当想要使用缓存中的服务时,使用者可从非立即生效的接口实现类注解所对应的接口实现类中选取需要的接口实现类进行实例化,需要时才会实例化出来,减少内存占用。
41.作为本发明的一个可选实施例,从预设自定义服务接口中获取接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类包括:
42.对预设自定义服务接口中的预设属性进行解析处理,得到预设属性的类型,其中,预设属性的类型包括立即生效和非立即生效;
43.根据预设属性的类型,从预设自定义服务接口中获取预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
44.具体的,对预设自定义服务接口的每个接口实现类注解的预设属性进行解析处理,解析出每个接口实现类注解的预设属性的类型,将预设属性的类型为立即生效的接口实现类注解所对应的实现类作为生效实现类;将预设属性的类型为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
45.步骤s130、通过从预设基础缓存容器中获取的与生效实现类相匹配的实例化对象,对生效实现类进行实例化处理,得到对外服务对象;其中,预设基础缓存容器用于储存接口实现类注解对应的实现类和与接口实现类注解对应的实现类相匹配的实例化对象。
46.具体的,将预设自定义服务接口中的所有涉及到的接口实现类注解对应的实现类以及每个实现类匹配的实例对象存储至预设基础缓存容器中,通过将生效实现类与预设基础缓存容器中存储的实现类进行比较,从预设基础缓存容器中获取与生效实现类相同的实现类,再根据与生效实现类相同的实现类获取相匹配的实例化对象,通过实例化对象对生效实现类进行实例化处理,得到对外服务对象。其中,对外服务对象能够直接对使用者提供服务。
47.作为本发明的一个可选实施例,通过从预设基础缓存容器中获取的与生效实现类相匹配的实例化对象,对生效实现类进行实例化处理,得到对外服务对象包括:
48.从预设基础缓存容器中获取与生效实现类相同的接口实现类注解对应的实现类,作为目标实现类;
49.从预设基础缓存容器中获取与目标实现类相匹配的实例化对象,作为目标实例化对象;
50.通过目标实例化对象对生效实现类进行实例化处理,得到对外服务对象。
51.具体的,从预设基础缓存容器中获取与生效实现类相同的接口实现类注解对应的实现类,将该实现类对应的实例化对象作为目标实例化对象,通过目标实例化对象构建实例化函数对生效实现类进行实例化,从而得到对外服务对象。将对外服务对象注入到服务容器中,对于接口服务使用者,在引用使用接口服务时,可以从服务容器中直接获取服务实例对象,实现服务需求。
52.步骤s140、将对外服务对象存储至实例化缓存容器和将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。
53.具体的,对外服务对象直接对外提供服务,将其存储至实例化缓存容器内,使用者可直接使用,将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,当对外服务对象无法满足使用者需求需要用到缓存实现类时,从未实例化缓存容器中获取相应缓存实现类和与相应缓存实现类匹配的实例化对象进行实例化,从而得到能够对使用者提供服务的对外服务对象。
54.作为本发明的一个可选实施例,将对外服务对象存储至实例化缓存容器和将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置包括:
55.将对外服务对象存储至实例化缓存容器;
56.对预设基础缓存容器与实例化缓存容器进行容器数据差集处理,得到缓存实现类以及与缓存实现类相匹配的实例化对象;
57.将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。
58.具体的,将实例化的实现类和未实例化的实现类分开存储,能够根据需要进行使用,并且,对于未实例化的实现类由于未进行实例化能够减小内存。预设基础缓存容器中存储有所有的预设自定义服务接口涉及到的实现类,因此,对于缓存实现类以及与缓存实现类相匹配的实例化对象只需要将预设基础缓存容器与实例化缓存容器进行容器数据差集处理便可得到;将得到的缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。预设基础缓存容器与实例化缓存容器和未实例化缓存容器共同构成多级缓存容器,当正在工作的服务机器宕机时,可通过其它服务器继续工作。
59.作为本发明的一个可选实施例,在将对外服务对象存储至实例化缓存容器和将缓存实现类以及与所述缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置之后,还包括:
60.根据获取的缓存实现类实例化指令,从未实例化缓存容器中获取与待实例化的缓存实现类相匹配的实例化对象作为待用实例化对象;其中,缓存实现类实例化指令包括待实例化的缓存实现类;
61.通过待用实例化对象对待实例化的缓存实现类进行实例化处理,得到新的对外服务对象;
62.将新的对外服务对象存储至实例化缓存容器,并将未实例化缓存容器中的待用实例化对象和与待用实例化对象对应的缓存实现类进行清除处理。
63.具体的,当使用者需要用到缓存实现类时,生成缓存实现类实例化指令,处理器接收缓存实现类实例化指令后从未实例化缓存容器中获取与待实例化的缓存实现类相匹配的实例化对象作为待用实例化对象,在缓存实现类实例化指令中需要指出待实例化的缓存实现类,实例化后的缓存实现类,得到新的对外服务对象,将新的对外服务对象存储至实例化缓存容器,并使用前置处理程序,将未实例化缓存容器中的待用实例化对象和与待用实例化对象对应的缓存实现类进行清除处理。
64.如图2所示,是本发明一个实施例的服务接口配置装置的功能模块图。
65.本发明所述服务接口配置装置200可以安装于电子设备中。根据实现的功能,所述服务接口配置装置可以包括感知扫描模块210、接口实现类注解获取模块220、实例化模块230、存储模块240。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
66.在本实施例中,关于各模块/单元的功能如下:
67.感知扫描模块210,用于对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合;其中,在预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与接口实现类注解相对应的预设属性;预设属性的类型包括立即生效的属性和非立即生效的属性。
68.具体的,由于在预设自定义服务接口内部预先创建有服务接口注解,通过该服务接口注解能够对预设自定义服务接口进行感知扫描,将服务平台或者服务系统中的所有接口进行扫描后,对接口内部带有服务接口注解的接口进行感知,从而能够快速知晓哪些是服务接口,哪些是非服务接口。无需在使用服务接口时,现指定服务接口,通过预设自定义服务接口能够快速为使用者提供服务,省去指定服务接口,创建服务接口文件等复杂步骤。
69.作为本发明的一个可选实施例,服务接口配置装置200进一步包括:服务接口声明注解单元、接口实现类注解单元和属性指定单元(图中未示出)。
70.其中,服务接口声明注解单元,用于对待配置服务接口进行服务接口声明注解处理,使待配置服务接口标明为对外提供服务的接口,得到声明的服务接口;
71.接口实现类注解单元,用于对声明的服务接口进行接口实现类注解处理,得到带有实现类注解的服务接口;
72.属性指定单元,用于根据预设接口实现类属性指定规则,对带有实现类注解的服务接口的接口实现类注解进行相应的属性指定处理,得到预设自定义服务接口;其中,预设接口实现类属性指定规则包括接口实现类注解和与接口实现类注解对应的预设属性。
73.具体的,服务接口声明注解单元通过计算机编程语言对待配置服务接口进行服务接口声明注解,通过服务接口声明注解能够明确哪些是服务接口哪些是非服务接口,其中,待配置服务接口中哪些作为服务接口可根据接口创建时的指定,当使用方在使用时,无需再指定接口,和在接口路径下创建文件,通过预先创建的服务接口注解能够简单明了的表明该接口为服务接口,并非其它接口;接口实现类注解单元对声明的服务接口进行接口实
现类注解,通过预先创建的接口实现类注解能够具体的表明该服务接口能够实现的服务实现类;属性指定单元能够对接口实现类注解指定预设属性,通过对接口实现类注解指定预设属性能够表明服务接口是否立即进行实例化,可根据需要指定预设属性,对于暂时不使用的预设自定义服务接口的某个接口实现类可设定为非立即生效的属性,可避免原生服务接口初始化加载全部服务接口,导致内存被一次性占用过多,出现的资源浪费的问题,并且给服务接口创建不同的接口实现类时,只需要添加接口实现类注解即可;不用再使用原生服务接口配置方式进行手动创建资源文件,以及避免每创建一个新的接口实现类都要在文件中追加接口实现类的内容。
74.作为本发明的一个可选实施例,预设自定义服务接口存储于区块链中,感知扫描模块210进一步包括:解码单元和感知扫描单元(图中未示出)。
75.其中,解码单元,用于根据获取的服务接口配置指令,通过编译器对所述服务接口注解进行解码处理,得到所述服务接口注解的译码;
76.感知扫描单元,用于根据服务接口注解的译码,对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合。
77.具体的,当解码单元收到服务接口配置指令时,通过编译器对服务接口注解进行解码处理,得到服务接口注解的译码,其中,服务接口注解的译码为机器可理解的语言,由于服务接口注解一般是通过计算机编程语言技术完成的注解,因此需要将服务接口注解翻译成机器之间约定的译码,通过感知扫描单元对服务接口注解的译码识别,对预设自定义服务接口进行感知扫描,将所有的预设自定义服务接口集合在一起后得到接口集合。
78.接口实现类注解获取模块220,用于从预设自定义服务接口中获取接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
79.具体的,预设自定义服务接口中的接口实现类注解根据预设属性的种类分为两类,一类是立即生效的接口实现类注解,另一类是非立即生效的接口实现类注解;接口实现类注解是对接口实现类的声明,因此,每个接口实现类注解均对应有实现类。立即生效的接口实现类注解所对应的接口实现类可先进行实例化得到服务对象后直接为使用者提供服务,而非立即生效的接口实现类注解对应的实现类可先缓存起来,当想要使用缓存中的服务时,使用者可从非立即生效的接口实现类注解所对应的接口实现类中选取需要的接口实现类进行实例化,需要时才会实例化出来,减少内存占用。
80.作为本发明的一个可选实施例,接口实现类注解获取模块220进一步包括:预设属性解析单元和实现类分类单元(图中未示出)。
81.其中,预设属性解析单元,用于对预设自定义服务接口中的预设属性进行解析处理,得到预设属性的类型,其中,预设属性的类型包括立即生效和非立即生效;
82.实现类分类单元,用于根据预设属性的类型,从预设自定义服务接口中获取预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
83.具体的,通过预设属性解析单元对预设自定义服务接口的每个接口实现类注解的预设属性进行解析处理,解析出每个接口实现类注解的预设属性的类型,通过预设属性解析单元将预设属性的类型为立即生效的接口实现类注解所对应的实现类作为生效实现类;
将预设属性的类型为非立即生效的接口实现类注解所对应的实现类作为缓存实现类。
84.实例化模块230,用于通过从预设基础缓存容器中获取的与生效实现类相匹配的实例化对象,对生效实现类进行实例化处理,得到对外服务对象;其中,预设基础缓存容器用于储存接口实现类注解对应的实现类和与接口实现类注解对应的实现类相匹配的实例化对象。
85.具体的,将预设自定义服务接口中的所有涉及到的接口实现类注解对应的实现类以及每个实现类匹配的实例对象存储至预设基础缓存容器中,通过将生效实现类与预设基础缓存容器中存储的实现类进行比较,从预设基础缓存容器中获取与生效实现类相同的实现类,再根据与生效实现类相同的实现类获取相匹配的实例化对象,通过实例化对象对生效实现类进行实例化处理,得到对外服务对象。其中,对外服务对象能够直接对使用者提供服务。
86.作为本发明的一个可选实施例,实例化模块230进一步包括:目标实现类获取单元、目标实例化对象获取单元和实例化处理单元(图中未示出)。
87.其中,目标实现类获取单元,用于从预设基础缓存容器中获取与生效实现类相同的接口实现类注解对应的实现类,作为目标实现类;
88.目标实例化对象获取单元,用于从预设基础缓存容器中获取与目标实现类相匹配的实例化对象,作为目标实例化对象;
89.实例化处理单元,用于通过目标实例化对象对生效实现类进行实例化处理,得到对外服务对象。
90.具体的,通过目标实现类获取单元从预设基础缓存容器中获取与生效实现类相同的接口实现类注解对应的实现类,作为目标实现类;通过目标实例化对象获取单元从预设基础缓存容器中获取与目标实现类相匹配的实例化对象,作为目标实例化对象;通过实例化处理单元对目标实例化对象构建实例化函数对生效实现类进行实例化,从而得到对外服务对象。将对外服务对象注入到服务容器中,对于接口服务使用者,在引用使用接口服务时,可以从服务容器中直接获取服务实例对象,实现服务需求。
91.存储模块240,用于将对外服务对象存储至实例化缓存容器和将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。
92.具体的,对外服务对象直接对外提供服务,将其存储至实例化缓存容器内,使用者可直接使用,将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,当对外服务对象无法满足使用者需求需要用到缓存实现类时,从未实例化缓存容器中获取相应缓存实现类和与相应缓存实现类匹配的实例化对象进行实例化,从而得到能够对使用者提供服务的对外服务对象。
93.作为本发明的一个可选实施例,存储模块240进一步包括:实例化缓存存储单元、差集处理单元和未实例化缓存存储单元(图中未示出)。其中,
94.实例化缓存存储单元,用于将对外服务对象存储至实例化缓存容器;
95.差集处理单元,用于对预设基础缓存容器与实例化缓存容器进行容器数据差集处理,得到缓存实现类以及与缓存实现类相匹配的实例化对象;
96.未实例化缓存存储单元,用于将缓存实现类以及与缓存实现类相匹配的实例化对
象存储至未实例化缓存容器,完成预设自定义服务接口的配置。
97.具体的,通过存储模块240将实例化的实现类和未实例化的实现类分开存储,能够根据需要进行使用,并且,对于未实例化的实现类由于未进行实例化能够减小内存。预设基础缓存容器中存储有所有的预设自定义服务接口涉及到的实现类,因此,对于缓存实现类以及与缓存实现类相匹配的实例化对象只需要将预设基础缓存容器与实例化缓存容器进行容器数据差集处理便可得到;将得到的缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。预设基础缓存容器与实例化缓存容器和未实例化缓存容器共同构成多级缓存容器,当正在工作的服务机器宕机时,可通过其它服务器继续工作。
98.作为本发明的一个可选实施例,服务接口配置装置200还包括:待用实例化对象获取单元、缓存实现类实例化单元和存储清除单元(图中未示出)。
99.其中,待用实例化对象获取单元,用于根据获取的缓存实现类实例化指令,从未实例化缓存容器中获取与待实例化的缓存实现类相匹配的实例化对象作为待用实例化对象;其中,缓存实现类实例化指令包括待实例化的缓存实现类;
100.缓存实现类实例化单元,用于通过待用实例化对象对待实例化的缓存实现类进行实例化处理,得到新的对外服务对象;
101.存储清除单元,用于将新的对外服务对象存储至实例化缓存容器,并将未实例化缓存容器中的待用实例化对象和与待用实例化对象对应的缓存实现类进行清除处理。
102.具体的,当使用者需要用到缓存实现类时,生成缓存实现类实例化指令,通过待用实例化对象获取单元接收缓存实现类实例化指令,并从未实例化缓存容器中获取与待实例化的缓存实现类相匹配的实例化对象作为待用实例化对象;其中在缓存实现类实例化指令中需要指出待实例化的缓存实现类。通过缓存实现类实例化单元利用待用实例化对象对待实例化的缓存实现类进行实例化处理,得到新的对外服务对象。通过存储清除单元将新的对外服务对象存储至实例化缓存容器,并使用前置处理程序,将未实例化缓存容器中的待用实例化对象和与待用实例化对象对应的缓存实现类进行清除处理。
103.如图3所示,是本发明一个实施例实现服务接口配置方法的电子设备的结构示意图。
104.所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如服务接口配置程序12。
105.其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如服务接口配置程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
106.所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成
电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(control unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如服务接口配置程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
107.所述总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
108.图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
109.例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi

fi模块等,在此不再赘述。
110.进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi

fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
111.可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light

emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
112.应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
113.所述电子设备1中的所述存储器11存储的服务接口配置程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
114.对预设自定义服务接口进行感知扫描处理,得到预设自定义服务接口的接口集合;其中,在预设自定义服务接口内预先创建有服务接口注解、接口实现类注解和与接口实现类注解相对应的预设属性;预设属性的类型包括立即生效的属性和非立即生效的属性;
115.从预设自定义服务接口中获取接口实现类注解,将预设属性为立即生效的接口实现类注解所对应的实现类作为生效实现类,将预设属性为非立即生效的接口实现类注解所对应的实现类作为缓存实现类;
116.通过从预设基础缓存容器中获取的与生效实现类相匹配的实例化对象,对生效实现类进行实例化处理,得到对外服务对象;其中,预设基础缓存容器用于储存接口实现类注
解对应的实现类和与接口实现类注解对应的实现类相匹配的实例化对象;
117.将对外服务对象存储至实例化缓存容器和将缓存实现类以及与缓存实现类相匹配的实例化对象存储至未实例化缓存容器,完成预设自定义服务接口的配置。
118.具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述所述预设自定义服务接口的私密和安全性,上述自定义服务接口还可以存储于一区块链的节点中。
119.进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)。
120.在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
121.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
122.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
123.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
124.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
125.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
126.此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
127.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
转载请注明原文地址:https://doc.8miu.com/read-1719043.html

最新回复(0)