[发明专利]一种基于Java反射的业务扩展方法及装置在审
| 申请号: | 201811614165.2 | 申请日: | 2018-12-27 |
| 公开(公告)号: | CN111443901A | 公开(公告)日: | 2020-07-24 |
| 发明(设计)人: | 崔俊;张歆明 | 申请(专利权)人: | 北京奇虎科技有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30 |
| 代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 java 反射 业务 扩展 方法 装置 | ||
本发明提供了一种基于Java反射的业务扩展方法及装置,所述方法包括:基于大数据平台获取任一应用程序的业务扩展的基础包名;扫描所述基础包下的多个第三方类信息,为各第三方类信息对应创建所述大数据平台的计算服务器执行的业务处理任务;其中,所述业务处理任务配置有所述第三方类信息的日志路径;利用所述计算服务器根据所述业务处理任务中的日志路径获取对应第三方类信息,基于所述第三方类信息通过Java反射创建实例对象;基于所述实例对象调用业务处理逻辑执行所述业务处理任务。基于本发明实施例提供的方法,可以在大数据平台下,实现新的业务类的扩展,进而在保证系统代码稳定性的同时,提升系统的可扩展性。
技术领域
本发明涉及数据处理技术领域,特别是涉及一种基于Java反射的业务扩展方法及装置。
背景技术
对于目前使用的系统来说,当需要基于系统新增功能业务时,通常会新增更多的业务类相关自定义文件,对于新增自定义文件的各种类的类名以及实例对象名是千奇百怪的,需要有各自专有的构造函数、属性名或个性化方法名进行刻意进行调用,导致代码无法通用化,并且,先前构造好的系统无法感知后来扩展出来的业务。最终使得业务系统的代码违背了软件的设计的开闭原则,从而导致代码过于臃肿,无法维护。
发明内容
本发明提供了一种基于Java反射的业务扩展方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种基于Java反射的业务扩展方法,应用于大数据平台,所述方法包括:
基于大数据平台获取任一应用程序的业务扩展的基础包名;
扫描所述基础包下的多个第三方类信息,为各第三方类信息对应创建所述大数据平台的计算服务器执行的业务处理任务;其中,所述业务处理任务配置有所述第三方类信息的日志路径;
利用所述计算服务器根据所述业务处理任务中的日志路径获取对应第三方类信息,基于所述第三方类信息通过Java反射创建实例对象;
基于所述实例对象调用业务处理逻辑执行所述业务处理任务。
可选地,所述扫描所述基础包下的多个第三方类信息,为各第三方类信息对应创建所述大数据平台的计算服务器执行的业务处理任务,包括:
扫描所述基础包下的多个第三方类信息,将所述各第三方类信息转换为字节码列表;
基于所述字节码列表创建所述大数据平台的计算服务器执行的业务处理任务。
可选地,所述利用所述计算服务器根据所述业务处理任务中的日志路径获取对应第三方类信息,基于所述第三方类信息通过Java反射创建实例对象,包括:
利用所述计算服务器根据所述业务处理任务获取各第三方类信息的字节码以及业务日志;
基于所述字节码通过Java反射创建所述业务日志对应业务类名的实例对象。
可选地,所述利用所述计算服务器根据所述业务处理任务获取各第三方类信息的字节码以及业务日志之后,还包括:
初始化所述计算服务器的业务处理任务列表,生成包括日志路径和业务全类名字符串的元组数据;
获取所述业务日志中各行数据的日志存储路径,并从所述元组数据中获取各日志存储路径对应的业务全类名。
可选地,所述基于所述字节码通过Java反射创建所述业务日志对应业务类名的实例对象,包括:
基于所述业务全类名通过反射创建对应不同类名的实例对象。
可选地,所述基于所述实例对象调用业务处理逻辑执行所述业务处理任务,包括:
基于所述实例对象调用日志处理的业务逻辑,通过所述业务逻辑对所述业务日志进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811614165.2/2.html,转载请声明来源钻瓜专利网。





