[发明专利]依赖注入方法、装置、设备和存储介质有效
| 申请号: | 201811122064.3 | 申请日: | 2018-09-26 |
| 公开(公告)号: | CN109388403B | 公开(公告)日: | 2022-04-05 |
| 发明(设计)人: | 吕毅 | 申请(专利权)人: | 广州视源电子科技股份有限公司;广州视睿电子科技有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 关志琨 |
| 地址: | 510530 广*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 依赖 注入 方法 装置 设备 存储 介质 | ||
本申请涉及一种依赖注入方法、装置、设备和存储介质。所述方法包括:在进行程序编译时,收集源代码文件;解析所述源代码文件,得到依赖关系特征;生成所述依赖关系特征的依赖关系代码;根据所述源代码文件和所述依赖关系代码,生成应用程序,供用户端运行所述应用程序时,执行所述依赖关系代码得到所述应用程序的依赖关系。根据本申请实施例,避免了用户端在运行应用程序时进行反射处理所导致的用户端顿卡、响应迟钝的问题。
技术领域
本申请涉及程序开发领域,特别是涉及一种依赖注入方法、装置、设备和存储介质。
背景技术
在应用程序开发中,主要是通过依赖注入的方式,来解决不同模块之间依赖问题。目前的依赖注入是通过反射处理来实现。在应用程序运行时,通过反射处理可以收集应用程序的元数据信息,并根据这些元数据信息,确定应用程序中各个模块之间的依赖关系。
然而,大量的反射处理会非常耗时和占用资源,用户启动应用程序之后,应用程序在进行大量的反射处理时,会引起用户端顿卡、响应迟钝等的异常情况。
因此,目前的依赖注入方式存在着程序运行导致用户端异常的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种依赖注入方法、装置、计算机设备和存储介质。
第一方面,提供了一种依赖注入方法,包括:
在进行程序编译时,收集源代码文件;
解析所述源代码文件,得到依赖关系特征;
生成所述依赖关系特征的依赖关系代码;
根据所述源代码文件和所述依赖关系代码,生成应用程序,供用户端运行所述应用程序时,执行所述依赖关系代码得到所述应用程序的依赖关系。
在其中一个实施例中,所述依赖关系代码包括依赖注入代码和依赖导出代码,所述生成所述依赖关系特征的依赖关系代码,包括:
当所述依赖关系特征为依赖注入特征,生成所述依赖注入代码;
当所述依赖关系特征为依赖导出特征,生成所述依赖导出代码。
在其中一个实施例中,所述根据所述源代码文件和所述依赖关系代码,生成应用程序,包括:
将所述依赖注入代码添加至所述源代码文件,得到依赖注入文件;
集合所述依赖导出代码,得到依赖导出文件;
针对所述依赖注入文件和所述依赖导出文件,执行核心编译任务,得到所述应用程序。
在其中一个实施例中,所述将所述依赖注入代码添加至所述源代码文件,得到依赖注入文件,包括:
查找所述源代码文件的占位符代码;
将所述依赖注入代码替换所述占位符代码,得到所述依赖注入文件。
在其中一个实施例中,还包括:
确定所述编译任务的核心编译任务;
在执行所述核心编译任务之前,执行所述收集源代码文件的步骤。
在其中一个实施例中,所述解析所述源代码文件,得到依赖关系特征,包括:
建立所述源代码文件的语法树;
提取所述语法树的语法节点;
判断所述语法节点是否存在依赖根节点;所述依赖根节点为另一语法树上的、与所述语法节点具有依赖关系的根语法节点;
若是,根据所述语法节点与所述依赖根节点之间的依赖关系,获取所述依赖关系特征。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州视源电子科技股份有限公司;广州视睿电子科技有限公司,未经广州视源电子科技股份有限公司;广州视睿电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811122064.3/2.html,转载请声明来源钻瓜专利网。





