[发明专利]依赖注入方法、装置、设备和存储介质有效

专利信息
申请号: 201811122064.3 申请日: 2018-09-26
公开(公告)号: CN109388403B 公开(公告)日: 2022-04-05
发明(设计)人: 吕毅 申请(专利权)人: 广州视源电子科技股份有限公司;广州视睿电子科技有限公司
主分类号: G06F8/41 分类号: G06F8/41
代理公司: 华进联合专利商标代理有限公司 44224 代理人: 关志琨
地址: 510530 广*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 依赖 注入 方法 装置 设备 存储 介质
【说明书】:

本申请涉及一种依赖注入方法、装置、设备和存储介质。所述方法包括:在进行程序编译时,收集源代码文件;解析所述源代码文件,得到依赖关系特征;生成所述依赖关系特征的依赖关系代码;根据所述源代码文件和所述依赖关系代码,生成应用程序,供用户端运行所述应用程序时,执行所述依赖关系代码得到所述应用程序的依赖关系。根据本申请实施例,避免了用户端在运行应用程序时进行反射处理所导致的用户端顿卡、响应迟钝的问题。

技术领域

本申请涉及程序开发领域,特别是涉及一种依赖注入方法、装置、设备和存储介质。

背景技术

在应用程序开发中,主要是通过依赖注入的方式,来解决不同模块之间依赖问题。目前的依赖注入是通过反射处理来实现。在应用程序运行时,通过反射处理可以收集应用程序的元数据信息,并根据这些元数据信息,确定应用程序中各个模块之间的依赖关系。

然而,大量的反射处理会非常耗时和占用资源,用户启动应用程序之后,应用程序在进行大量的反射处理时,会引起用户端顿卡、响应迟钝等的异常情况。

因此,目前的依赖注入方式存在着程序运行导致用户端异常的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种依赖注入方法、装置、计算机设备和存储介质。

第一方面,提供了一种依赖注入方法,包括:

在进行程序编译时,收集源代码文件;

解析所述源代码文件,得到依赖关系特征;

生成所述依赖关系特征的依赖关系代码;

根据所述源代码文件和所述依赖关系代码,生成应用程序,供用户端运行所述应用程序时,执行所述依赖关系代码得到所述应用程序的依赖关系。

在其中一个实施例中,所述依赖关系代码包括依赖注入代码和依赖导出代码,所述生成所述依赖关系特征的依赖关系代码,包括:

当所述依赖关系特征为依赖注入特征,生成所述依赖注入代码;

当所述依赖关系特征为依赖导出特征,生成所述依赖导出代码。

在其中一个实施例中,所述根据所述源代码文件和所述依赖关系代码,生成应用程序,包括:

将所述依赖注入代码添加至所述源代码文件,得到依赖注入文件;

集合所述依赖导出代码,得到依赖导出文件;

针对所述依赖注入文件和所述依赖导出文件,执行核心编译任务,得到所述应用程序。

在其中一个实施例中,所述将所述依赖注入代码添加至所述源代码文件,得到依赖注入文件,包括:

查找所述源代码文件的占位符代码;

将所述依赖注入代码替换所述占位符代码,得到所述依赖注入文件。

在其中一个实施例中,还包括:

确定所述编译任务的核心编译任务;

在执行所述核心编译任务之前,执行所述收集源代码文件的步骤。

在其中一个实施例中,所述解析所述源代码文件,得到依赖关系特征,包括:

建立所述源代码文件的语法树;

提取所述语法树的语法节点;

判断所述语法节点是否存在依赖根节点;所述依赖根节点为另一语法树上的、与所述语法节点具有依赖关系的根语法节点;

若是,根据所述语法节点与所述依赖根节点之间的依赖关系,获取所述依赖关系特征。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州视源电子科技股份有限公司;广州视睿电子科技有限公司,未经广州视源电子科技股份有限公司;广州视睿电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201811122064.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top