[发明专利]封装Dagger的方法、装置、终端设备及存储介质有效
申请号: | 201810971690.3 | 申请日: | 2018-08-24 |
公开(公告)号: | CN109597621B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 郑凌山 | 申请(专利权)人: | 天津字节跳动科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 300450 天津市滨海新*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 封装 dagger 方法 装置 终端设备 存储 介质 | ||
本公开实施例公开了一种封装Dagger的方法、装置、终端设备及存储介质。封装Dagger的方法包括:创建自定义注解AutoWire,所述AutoWire为编译时注解;创建AutoWire注解对应的注解处理器,所述注解处理器用于在编译时获取添加AutoWire注解的类信息;根据所述类信息,生成Dagger所需的Component文件和Module文件。本公开实施例实现了对Dagger的封装,而且可以自动生成Component文件和Module文件,解决了配置文件难以维护及人为管理易疏漏的问题,并减少研发的学习周期。
技术领域
本公开实施例涉及计算机技术,尤其涉及一种封装Dagger的方法、装置、终端设备及存储介质。
背景技术
针对项目变大后内部类太多,类与类之间出现多重依赖的问题,Google推出编译时注解版本的Dagger2方案,旨在以编译期生成代码替代原有的反射方案,不影响原有应用程序(Application,App)性能的前提下,解决依赖性问题,同时由于Android应用开发中大量采用MVP的架构,因此会频繁出现在MVP架构的基础上引入Dagger2,项目中需单独维护Dagger所需的Component和Module文件。
由于Dagger2要求我们为每个页面(或模块)配置Component和Module文件,随着业务的快速扩大,App内模块和页面也越来越多,手动维护这个配置列表将变得越发臃肿,难以维护,人为的管理同步也增加了疏漏的几率;Dagger2由于设计上的考虑,添加4个内部类来达到间接注入的目的,使得研发的学习周期较长。
发明内容
有鉴于此,本公开实施例提供一种封装Dagger的方法、装置、终端设备及存储介质,以至少地解决上述问题。
第一方面,本公开实施例提供了一种封装Dagger的方法,所述方法包括:
创建自定义注解AutoWire,所述AutoWire为编译时注解;
创建AutoWire注解对应的注解处理器,所述注解处理器用于在编译时获取添加AutoWire注解的类信息;
根据所述类信息,生成Dagger所需的Component文件和Module文件。
可选的,还包括:
通过所述注解处理器将所述类信息作为Element输出;
通过所述注解处理器中的process方法将所述Element输出的类信息进行封装,得到传入参数;
解析所述传入参数,得到被注解的类信息。
可选的,根据所述类信息,生成Dagger所需的Component文件和Module文件,包括:
根据所述类信息,利用JavaPoet库生成Dagger所需的Component文件;
根据所述类信息,利用JavaPoet库生成Dagger所需的Module文件。
第二方面,本公开实施例还提供了一种封装的Dagger,所述封装的Dagger由本公开任一实施例所述的封装Dagger的方法封装而成。
第三方面,本公开实施例还提供了一种封装的Dagger对MVP架构的解耦方法,包括:
针对MVP架构,将Activity的基类对应的Activity实例注入所述Dagger中;
在编译时,通过所述Dagger中的注解处理器获取添加AutoWire注解的Activity的类信息,所述AutoWire注解为编译时注解,包括Activity对应的presenter参数和contract参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津字节跳动科技有限公司,未经天津字节跳动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810971690.3/2.html,转载请声明来源钻瓜专利网。