[发明专利]应用程序以及应用程序的业务插件使用方法在审
申请号: | 201810766336.7 | 申请日: | 2018-07-12 |
公开(公告)号: | CN108958842A | 公开(公告)日: | 2018-12-07 |
发明(设计)人: | 彭亮;朱红阁 | 申请(专利权)人: | 北京猫眼文化传媒有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100013 北京市朝阳区望*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 业务插件 宿主应用程序 服务接口 应用程序 接入层 抽象层 创建 宿主 保存服务 服务 | ||
1.一种应用程序的业务插件使用方法,其特征在于,
所述应用程序包括:
宿主应用程序;
抽象层,包括多个服务接口,其中,每个服务接口用于描述所述宿主应用程序能够提供的服务;
至少一个业务插件,用于接入至所述宿主应用程序;
其中,所述宿主应用程序包括接入层;
所述接入层,用于对接入的每个业务插件创建该业务插件需要使用的所有服务接口的实现类,以及创建并保存所述服务接口的名称与所述实现类的名称的对应关系;
所述宿主应用程序,包括所述接入层创建的所述实现类以及所述对应关系;
ServiceLoader层;
所述方法包括:
所述ServiceLoader层接收所述至少一个业务插件中目标业务插件对目标服务接口的调用请求;
所述ServiceLoader层根据所述调用请求查询所述对应关系中与所述目标服务接口的名称对应的目标实现类的名称;
所述ServiceLoader层根据所述目标实现类的名称,通过反射创建所述目标实现类的实例;
所述ServiceLoader层响应于所述调用请求,将所述目标实现类的实例通过所述目标服务接口返回至所述目标业务插件。
2.根据权利要求1所述的方法,其特征在于,所述调用请求包括所述目标服务接口的名称,所述ServiceLoader层根据所述调用请求查询所述对应关系中与所述目标服务接口的名称对应的目标实现类的名称,包括:
所述ServiceLoader层根据所述目标服务接口的名称在所述对应关系中查询与所述目标服务接口的名称对应的目标实现类的名称。
3.根据权利要求1所述的方法,其特征在于,所述服务接口的名称与所述实现类的名称的对应关系存储在配置文件中,所述ServiceLoader层根据所述调用请求查询所述对应关系中与所述目标服务接口的名称对应的目标实现类的名称,包括:
所述ServiceLoader层根据所述调用请求查询所述配置文件中的对应关系,确定与所述目标服务接口的名称对应的目标实现类的名称。
4.根据权利要求1所述的方法,其特征在于,所述ServiceLoader层根据所述目标实现类的名称,通过反射创建所述目标实现类的实例之前,所述方法还包括:
所述ServiceLoader层判断缓存中是否存在所述目标实现类的实例;
所述ServiceLoader层根据所述目标实现类的名称,通过反射创建所述目标实现类的实例,包括:
若缓存中不存在所述目标实现类的实例,则所述ServiceLoader层根据所述目标实现类的名称,通过反射创建所述目标实现类的实例;
所述ServiceLoader层根据所述目标实现类的名称,通过反射创建所述目标实现类的实例之后,所述方法还包括:
将所述目标实现类的实例缓存在内存中。
5.根据权利要求4所述的方法,其特征在于,所述ServiceLoader层判断缓存中是否存在所述目标实现类的实例之后,所述方法还包括:
若缓存中存在所述目标实现类的实例,则所述ServiceLoader层响应于所述调用请求,将缓存中所述目标实现类的实例通过所述目标服务接口返回至所述目标业务插件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京猫眼文化传媒有限公司,未经北京猫眼文化传媒有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810766336.7/1.html,转载请声明来源钻瓜专利网。