一种基于java反射技术的服务注册配置方法及系统的制作方法
【专利摘要】本发明公开了一种基于JAVA反射技术的服务注册配置方法及系统,方法包括:在调用服务上对服务组件进行注册;调用服务加载服务组件的注册信息;调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。本发明的方法基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,降低了系统接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了系统的开发效率,降低了系统维护和迁移部署的难度且有利于程序的模块化。本发明可广泛应用于计算机【技术领域】。
【专利说明】—种基于JAVA反射技术的服务注册配置方法及系统
【技术领域】
[0001]本发明属于计算机【技术领域】,尤其是涉及一种基于JAVA反射技术的服务注册配置方法及系统。
【背景技术】
[0002]在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为JAVA语言的反射机制,简称JAVA反射机制。
[0003]在一个系统中,服务实现与服务调用之间,通常是通过接口( Interface)定义来实现调用的:服务方法实现定义的接口,服务调用者就能通过定义的接口规范调用接口方法。这种模式是常用的系统接口方式,它需要严格的定义,并且服务调用者与服务实现者都需要明确地引入接口定义。因此,目前的系统接口方式,服务实现与服务调用之间的关联度较高,在服务实现时需要引入大量的接口定义规格和环境,系统的开发效率较低,加大了系统维护和迁移部署的难度且不利于程序的模块化。
【发明内容】
[0004]为了解决上述技术问题,本发明的一个目的是:提供一种基于JAVA反射技术的,开发效率高、系统维护和迁移部署简单、有利于程序的模块化的服务注册配置方法。
[0005]本发明的另一个目的是:提供一种基于JAVA反射技术的,操作方便和调用效率高开发效率高、系统维护和迁移部署简单、有利于程序的模块化的服务注册配置系统。
[0006]本发明解决其技术问题所采用的技术方案是:一种基于JAVA反射技术的服务注册配置方法,包括:
A、在调用服务上对服务组件进行注册;
B、调用服务加载服务组件的注册信息;
C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
[0007]进一步,所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
[0008]进一步,所述步骤C,其包括:
Cl、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
C2、判断是否已经成功获取服务数据,若是,则执行步骤C3,反之,则转至执行步骤C5 ; C3、通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
C4、判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行步骤C5。
[0009]C5、通过JAVA反射机制调用预设的服务组件异常处理方法进行修正。
[0010]进一步,在所述步骤C5之后还设有步骤C6,所述步骤C6,其具体为:根据修正的结果生成相应的记录日志并结束调用。
[0011]本发明解决其技术问题所采用的另一技术方案是:一种基于JAVA反射技术的服务注册配置系统,包括:
注册模块,用于在调用服务上对服务组件进行注册;
加载模块,用于调用服务加载服务组件的注册信息;
调用模块,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理;
所述注册模块的输出端通过加载模块进而与调用模块的输入端连接。
[0012]进一步,所述调用模块,其包括:
获取单元,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
第一判断单元,用于判断是否已经成功获取服务数据,若是,则转至处理单元,反之,则跳至修正单元;
处理单元,用于通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处
理;
第二判断单元,用于判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行修正单元。
[0013]修正单元,用于通过JAVA反射机制调用预设的服务组件异常处理方法进行修正; 所述获取单元的输入端与加载模块的输出端连接,所述获取单元的输出端依次通过第
一判断单元、处理单元和第二判断单元进而与修正单元的输入端连接。
[0014]进一步,所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志并结束调用。
[0015]本发明的方法的有益效果:基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,减少了服务实现与服务调用之间的关联度,降低了系统接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了系统的开发效率,降低了系统维护和迁移部署的难度且有利于程序的模块化。
[0016]本发明的系统的有益效果是:基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,减少了服务实现与服务调用之间的关联度,降低了系统接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了系统的开发效率,降低了系统维护和迁移部署的难度且有利于程序的模块化。
【专利附图】
【附图说明】
[0017]下面结合附图和实施例对本发明作进一步说明。
[0018]图1为本发明一种基于JAVA反射技术的服务注册配置方法的步骤流程图;图2为本发明步骤C的流程图;
图3为本发明增加步骤C6后的流程图;
图4为本发明种基于JAVA反射技术的服务注册配置系统的原理框图; 图5为本发明调用模块的结构框图。
【具体实施方式】
[0019]参照图1,一种基于JAVA反射技术的服务注册配置方法,包括:
A、在调用服务上对服务组件进行注册;
B、调用服务加载服务组件的注册信息;
C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
[0020]其中,对相应的服务数据进行获取和处理,主要是为了对服务方法与服务组件的调用方式进行配置。
[0021]进一步作为优选的实施方式,所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
[0022]参照图2,进一步作为优选的实施方式,所述步骤C,其包括:
Cl、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
C2、判断是否已经成功获取服务数据,若是,则执行步骤C3,反之,则转至执行步骤C5 ; C3、通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
C4、判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行步骤C5。
[0023]C5、通过JAVA反射机制调用预设的服务组件异常处理方法进行修正。
[0024]其中,步骤C2和C4均用于判断服务调用是否正确。服务组件异常处理方法,是指服务组件在出现异常时的处理方法,可以根据实际的服务需要而预先设定。
[0025]参照图3,进一步作为优选的实施方式,在所述步骤C5之后还设有步骤C6,所述步骤C6,其具体为:根据修正的结果生成相应的记录日志并结束调用。
[0026]其中,记录日志用于记录修正的结果和修正的方式。
[0027]参照图4,一种基于JAVA反射技术的服务注册配置系统,包括:
注册模块,用于在调用服务上对服务组件进行注册;
加载模块,用于调用服务加载服务组件的注册信息;
调用模块,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理;
所述注册模块的输出端通过加载模块进而与调用模块的输入端连接。
[0028]参照图5,进一步作为优选的实施方式,所述调用模块,其包括:
获取单元,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
第一判断单元,用于判断是否已经成功获取服务数据,若是,则转至处理单元,反之,则跳至修正单元;
处理单元,用于通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处
理;
第二判断单元,用于判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行修正单元。[0029]修正单元,用于通过JAVA反射机制调用预设的服务组件异常处理方法进行修正; 所述获取单元的输入端与加载模块的输出端连接,所述获取单元的输出端依次通过第
一判断单元、处理单元和第二判断单元进而与修正单元的输入端连接。
[0030]参照图5,进一步作为优选的实施方式,所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志并结束调用。
[0031]下面结合具体的实施例对本发明作进一步详细说明。
[0032]本实施例主要介绍本发明在电力行业上的业务应用。此时,服务实现为业务实现,服务的方法为业务的方法,服务调用为业务调用,服务组件为业务组件。
[0033]本发明通过JAVA语言反射机制提供动态的链接程序组件,允许程序创建和控制任何类的对象(根据安全性限制),无需提前硬编码目标类。本发明具有以下特点:
(I)各业务组件只需根据自己的业务逻辑进行编码,而无需关心调用者的调用方式,也不需要定义和实现调用相关的接口。
[0034](2)在调用服务上对业务组件进行注册,注册的主要信息包括组件名称、业务类名称、业务方法名称、输入参数类型和输出参数类型。
[0035](3)调用服务通过注册信息,根据不同业务调用相应的业务组件,调用过程通过JAVA反射机制来实现。
[0036](4)服务调用者还可以分享自己的一些常用方法,通过JAVA反射机制供业务组件使用。
[0037]本发明在电力行业上的业务应用的工作过程为:服务运行后,先加载各个业务组件的注册信息,然后通过JAVA反射机制调用业务获取数据的方法并判断第一次调用(即调用业务获取数据的方法)是否出错。若第一次调用出错,则调用预设的业务组件处理错误的方法;如果第一次调用成功,则接着通过JAVA反射机制调用业务处理数据的方法并判断第二次调用(即调用业务处理数据的方法)是否出错。若第二次调用出错,则再次调用预设的业务组件处理错误的方法;若第二次调用成功,则结束运行线程。
[0038]本发明使用JAVA反射机制可以灵活地配置业务方法与容器(即业务组件)之间的调用方式,能够减少服务管理者与业务组件之间的依赖关系。此外,本发明能够创建灵活的代码,这些代码可以在运行时装配,而无需在服务组件之间进行源代码链接。因此,本发明在编写与执行时,能使程序代码接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码,可构建更为灵活的应用。
[0039]与现有技术相比,本发明能减少服务实现与服务调用之间的关联度,业务实现的时候不再需要关心与调用者之间的接口定义,也不需要为此引入大量的接口定义规格和环境,业务实现只需要关心业务逻辑的实现和方法的输入输出,更加简单、方便和高效。
[0040]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【权利要求】
1.一种基于JAVA反射技术的服务注册配置方法,其特征在于:包括: A、在调用服务上对服务组件进行注册; B、调用服务加载服务组件的注册信息; C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
2.根据权利要求1所述的一种基于JAVA反射技术的服务注册配置方法,其特征在于:所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
3.根据权利要求1所述的一种基于JAVA反射技术的服务注册配置方法,其特征在于:所述步骤C,其包括: Cl、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据; C2、判断是否已经成功获取服务数据,若是,则执行步骤C3,反之,则转至执行步骤C5 ; C3、通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理; C4、判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行步骤C5 ; C5、通过JAVA反射机制调用预设的服务组件异常处理方法进行修正。
4.根据权利要求3所述的一种基于JAVA反射技术的服务注册配置方法,其特征在于:在所述步骤C5之后还设有步骤C6,所述步骤C6,其具体为:根据修正的结果生成相应的记录日志并结束调用。
5.一种基于JAVA反射技术的服务注册配置系统,其特征在于:包括: 注册模块,用于在调用服务上对服务组件进行注册; 加载模块,用于调用服务加载服务组件的注册信息; 调用模块,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理; 所述注册模块的输出端通过加载模块进而与调用模块的输入端连接。
6.根据权利要求5所述的一种基于JAVA反射技术的服务注册配置系统,其特征在于:所述调用模块,其包括: 获取单元,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据; 第一判断单元,用于判断是否已经成功获取服务数据,若是,则转至处理单元,反之,则跳至修正单元; 处理单元,用于通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理; 第二判断单元,用于判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行修正单元; 修正单元,用于通过JAVA反射机制调用预设的服务组件异常处理方法进行修正;所述获取单元的输入端与加载模块的输出端连接,所述获取单元的输出端依次通过第一判断单元、处理单元和第二判断单元进而与修正单元的输入端连接。
7.根据权利要求6所述的一种基于JAVA反射技术的服务注册配置系统,其特征在于:所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志 并结束调用。
【文档编号】G06F9/44GK103544016SQ201310518203
【公开日】2014年1月29日 申请日期:2013年10月28日 优先权日:2013年10月28日
【发明者】苏宏勋, 施振华, 巴根那, 丁晓东, 郭路山 申请人:珠海许继芝电网自动化有限公司, 珠海许继电气有限公司, 国网山东省电力公司, 国家电网公司