[发明专利]封装Dagger的方法、装置、终端设备及存储介质有效
申请号: | 201810971690.3 | 申请日: | 2018-08-24 |
公开(公告)号: | CN109597621B | 公开(公告)日: | 2022-10-14 |
发明(设计)人: | 郑凌山 | 申请(专利权)人: | 天津字节跳动科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 300450 天津市滨海新*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 封装 dagger 方法 装置 终端设备 存储 介质 | ||
1.一种封装Dagger的方法,其特征在于,包括:
创建自定义注解AutoWire,所述AutoWire为编译时注解;
创建AutoWire注解对应的注解处理器,所述注解处理器用于在编译时获取添加AutoWire注解的类信息;
根据所述类信息,生成Dagger所需的Component文件和Module文件;
所述AutoWire注解能够实现在依赖注入中自动装配依赖对象;
针对MVP架构,将Activity的基类对应的Activity实例注入所述Dagger中;
在编译时,通过所述Dagger中的注解处理器获取添加AutoWire注解的Activity的类信息,所述AutoWire注解为编译时注解,包括Activity对应的presenter参数和contract参数;
根据所述类信息,通过所述Dagger中的Module文件连接所述AutoWire注解的Activity的presenter参数和contract参数,并生成对应的连接类,通过所述Dagger中的Component文件对Activity进行注入操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
通过所述注解处理器将所述类信息作为Element输出;
通过所述注解处理器中的process方法将所述Element输出的类信息进行封装,得到传入参数;
解析所述传入参数,得到被注解的类信息。
3.根据权利要求1所述的方法,其特征在于,根据所述类信息,生成Dagger所需的Component文件和Module文件,包括:
根据所述类信息,利用JavaPoet库生成Dagger所需的Component文件;
根据所述类信息,利用JavaPoet库生成Dagger所需的Module文件。
4.根据权利要求1所述的方法,其特征在于,在针对MVP架构,将Activity的基类对应的Activity实例注入所述Dagger中之前,还包括:
在所述Activity不存在基类时,创建所述Activity的基类。
5.根据权利要求1所述的方法,其特征在于,通过所述Dagger中的Component文件对Activity进行注入操作,包括:
在所述基类中对添加AutoWire注解的Activity进行类型判断,并通过Dagger中的Component文件中的方法对判断为预设类型的Activity进行注入操作。
6.一种封装Dagger的装置,其特征在于,所述装置包括:
注解创建模块,用于创建自定义注解AutoWire,所述AutoWire为编译时注解;
注解处理器创建模块,用于创建AutoWire注解对应的注解处理器,所述注解处理器用于在编译时获取添加AutoWire注解的类信息;
配置文件生成模块,用于根据所述类信息,生成Dagger所需的Component文件和Module文件;
所述AutoWire注解能够实现在依赖注入中自动装配依赖对象;
实例注入模块,用于针对MVP架构,将Activity的基类对应的Activity实例注入所述Dagger中;
类信息获取模块,用于在编译时,通过所述Dagger中的注解处理器获取添加AutoWire注解的Activity的类信息,所述AutoWire注解为编译时注解,包括Activity对应的presenter参数和contract参数;
解耦模块,用于根据所述类信息,通过所述Dagger中的Module文件连接所述AutoWire注解的Activity的presenter参数和contract参数,并生成对应的连接类。
7.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5任一所述的封装Dagger的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5任一所述的封装Dagger的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津字节跳动科技有限公司,未经天津字节跳动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810971690.3/1.html,转载请声明来源钻瓜专利网。