[发明专利]程序组件配置装置及方法在审
申请号: | 201910631088.X | 申请日: | 2019-07-12 |
公开(公告)号: | CN110457013A | 公开(公告)日: | 2019-11-15 |
发明(设计)人: | 杨贾冰;陈双 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20 |
代理公司: | 11415 北京博思佳知识产权代理有限公司 | 代理人: | 周嗣勇<国际申请>=<国际公布>=<进入 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库框架 应用程序 注解 调用请求 数据库操作接口 注解处理器 程序组件 配置程序 原始数据 处理器 反射 标注 匹配 响应 转换 统一 | ||
本发明实施例一种配置程序组件的装置与方法,该装置包括:注解处理器,用于基于应用程序采用的数据库框架类型,将利用统一注解标注的原始数据模型类转换为与所述数据库框架类型匹配的新注解模型类;数据库操作接口,用于接收来自所述应用程序的对所述程序组件的调用请求;以及反射处理器,用于响应于所述调用请求,将与所述应用程序采用的数据库框架类型对应的新注解模型类传送给所述应用程序采用的数据库框架。
技术领域
本发明涉及软件技术,特别涉及适用于不同数据库框架的统一程序组件编程。
背景技术
软件模块化设计使得软件功能可扩展性成为可能。通常为了实现某一特定的功能,开发人员可设计专门的功能组件,将所需功能封装成一个软件开发工具包(SDK)组件,提供给应用程序APP,这些功能组件例如以插件的形式根据需要嵌入到应用程序中,APP只需要调用SDK提供的接口即可实现所封装的功能,从而达到丰富应用程序的功能。
在APP组件开发中,SDK组件经常需要进行数据库存储操作,例如消息盒子组件需要在本地存储消息的内容,而数据库存储就必须调用APP本身接入的数据库框架来实现。因此需要为符合不同数据库框架的APP开发相应的SDK组件。例如对于存储消息详情,其中消息详情包括标题title和内容content。如果APP使用sqlite数据库框架进行数据库存储,则在消息盒子组件中需要定义模型类:
之后,调用sqlite数据库框架接口来实现具体Message数据的存储。
对于实现同样的存储消息详情的功能,如果APP使用ormLite框架进行数据库存储,则需要另外定义模型类:
之后,调用ormLite数据库框架接口实现该模型类中Message数据的存储。
可以看到,对于支持不同数据库框架类型的APP,即使是开发相同功能的SDK组件,也需要分别编制不同的程序,例如,在sqlite数据库框架下,不存在标解,而在ormLite框架下通常需要在编程时定义注解,即上述程序中以@引导的语法。
发明内容
为了避免因APP所支持的数据库框架不同而开发具有完全相同功能但不同编程的SDK组件,出于组件设计的角度,希望提供统一的编程代码,能配置到不同数据库框架下APP使用,而不是根据不同APP使用数据库框架的情况来配置数据类和调用数据库存储的代码逻辑。
为此,本发明提出一种使用统一的自定义注解,通过注解处理器在编译阶段将自定义注解转换为适于各个不同数据库框架的注解的方案,在程序运行期再通过反射操作转换注解模型类,从而实现利用同一套代码可以运行在不同应用程序APP下的目的。
按照本发明的一个方面,提供一种用于配置程序组件的装置,其中所述程序组件包含利用统一注解标注的原始数据模型类,该装置包括:注解处理器,用于基于应用程序采用的数据库框架类型,将所述原始数据模型类转换为与所述数据库框架类型匹配的新注解模型类;数据库操作接口,用于接收来自所述应用程序的对所述程序组件的调用请求;以及反射处理器,用于响应于所述调用请求,将与所述应用程序采用的数据库框架类型对应的新注解模型类传送给所述应用程序采用的数据库框架。在一个优选实施例中,2、该程序组件的配置装置进一步包括:类型确定模块,用于确定装载所述程序组件的所述应用程序采用的数据库框架类型;其中,如果所述程序组件中的原始数据模型类与所述数据库框架类型不匹配,则所述注解处理器将所述原始数据模型类转换为与所述数据库框架类型匹配的新注解模型类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910631088.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于可持续交通网络设计的多属性决策软件
- 下一篇:一种面向对象的软件开发系统