CN103544016A - 一种基于java反射技术的服务注册配置方法及*** - Google Patents
一种基于java反射技术的服务注册配置方法及*** Download PDFInfo
- Publication number
- CN103544016A CN103544016A CN201310518203.5A CN201310518203A CN103544016A CN 103544016 A CN103544016 A CN 103544016A CN 201310518203 A CN201310518203 A CN 201310518203A CN 103544016 A CN103544016 A CN 103544016A
- Authority
- CN
- China
- Prior art keywords
- service
- calling
- serviced component
- java
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于JAVA反射技术的服务注册配置方法及***,方法包括:在调用服务上对服务组件进行注册;调用服务加载服务组件的注册信息;调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。本发明的方法基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,降低了***接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了***的开发效率,降低了***维护和迁移部署的难度且有利于程序的模块化。本发明可广泛应用于计算机技术领域。
Description
技术领域
本发明属于计算机技术领域,尤其是涉及一种基于JAVA反射技术的服务注册配置方法及***。
背景技术
在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为JAVA语言的反射机制,简称JAVA反射机制。
在一个***中,服务实现与服务调用之间,通常是通过接口(Interface)定义来实现调用的:服务方法实现定义的接口,服务调用者就能通过定义的接口规范调用接口方法。这种模式是常用的***接口方式,它需要严格的定义,并且服务调用者与服务实现者都需要明确地引入接口定义。因此,目前的***接口方式,服务实现与服务调用之间的关联度较高,在服务实现时需要引入大量的接口定义规格和环境,***的开发效率较低,加大了***维护和迁移部署的难度且不利于程序的模块化。
发明内容
为了解决上述技术问题,本发明的一个目的是:提供一种基于JAVA反射技术的,开发效率高、***维护和迁移部署简单、有利于程序的模块化的服务注册配置方法。
本发明的另一个目的是:提供一种基于JAVA反射技术的,操作方便和调用效率高开发效率高、***维护和迁移部署简单、有利于程序的模块化的服务注册配置***。
本发明解决其技术问题所采用的技术方案是:一种基于JAVA反射技术的服务注册配置方法,包括:
A、在调用服务上对服务组件进行注册;
B、调用服务加载服务组件的注册信息;
C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
进一步,所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
进一步,所述步骤C,其包括:
C1、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
C2、判断是否已经成功获取服务数据,若是,则执行步骤C3,反之,则转至执行步骤C5;
C3、通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
C4、判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行步骤C5。
C5、通过JAVA反射机制调用预设的服务组件异常处理方法进行修正。
进一步,在所述步骤C5之后还设有步骤C6,所述步骤C6,其具体为:根据修正的结果生成相应的记录日志并结束调用。
本发明解决其技术问题所采用的另一技术方案是:一种基于JAVA反射技术的服务注册配置***,包括:
注册模块,用于在调用服务上对服务组件进行注册;
加载模块,用于调用服务加载服务组件的注册信息;
调用模块,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理;
所述注册模块的输出端通过加载模块进而与调用模块的输入端连接。
进一步,所述调用模块,其包括:
获取单元,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
第一判断单元,用于判断是否已经成功获取服务数据,若是,则转至处理单元,反之,则跳至修正单元;
处理单元,用于通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
第二判断单元,用于判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行修正单元。
修正单元,用于通过JAVA反射机制调用预设的服务组件异常处理方法进行修正;
所述获取单元的输入端与加载模块的输出端连接,所述获取单元的输出端依次通过第一判断单元、处理单元和第二判断单元进而与修正单元的输入端连接。
进一步,所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志并结束调用。
本发明的方法的有益效果:基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,减少了服务实现与服务调用之间的关联度,降低了***接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了***的开发效率,降低了***维护和迁移部署的难度且有利于程序的模块化。
本发明的***的有益效果是:基于JAVA反射机制,可以灵活地对服务方法和服务组件之间的调用方式进行配置,减少了服务实现与服务调用之间的关联度,降低了***接口的关联耦合度;同时,服务实现的时候不再需要像传统方法那样关心服务调用与服务调用之间的接口定义,也不再需要引入大量的接口定义规格和环境,提高了***的开发效率,降低了***维护和迁移部署的难度且有利于程序的模块化。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1为本发明一种基于JAVA反射技术的服务注册配置方法的步骤流程图;图2为本发明步骤C的流程图;
图3为本发明增加步骤C6后的流程图;
图4为本发明种基于JAVA反射技术的服务注册配置***的原理框图;
图5为本发明调用模块的结构框图。
具体实施方式
参照图1,一种基于JAVA反射技术的服务注册配置方法,包括:
A、在调用服务上对服务组件进行注册;
B、调用服务加载服务组件的注册信息;
C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
其中,对相应的服务数据进行获取和处理,主要是为了对服务方法与服务组件的调用方式进行配置。
进一步作为优选的实施方式,所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
参照图2,进一步作为优选的实施方式,所述步骤C,其包括:
C1、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
C2、判断是否已经成功获取服务数据,若是,则执行步骤C3,反之,则转至执行步骤C5;
C3、通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
C4、判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行步骤C5。
C5、通过JAVA反射机制调用预设的服务组件异常处理方法进行修正。
其中,步骤C2和C4均用于判断服务调用是否正确。服务组件异常处理方法,是指服务组件在出现异常时的处理方法,可以根据实际的服务需要而预先设定。
参照图3,进一步作为优选的实施方式,在所述步骤C5之后还设有步骤C6,所述步骤C6,其具体为:根据修正的结果生成相应的记录日志并结束调用。
其中,记录日志用于记录修正的结果和修正的方式。
参照图4,一种基于JAVA反射技术的服务注册配置***,包括:
注册模块,用于在调用服务上对服务组件进行注册;
加载模块,用于调用服务加载服务组件的注册信息;
调用模块,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理;
所述注册模块的输出端通过加载模块进而与调用模块的输入端连接。
参照图5,进一步作为优选的实施方式,所述调用模块,其包括:
获取单元,用于调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件来获取服务数据;
第一判断单元,用于判断是否已经成功获取服务数据,若是,则转至处理单元,反之,则跳至修正单元;
处理单元,用于通过JAVA反射机制再次调用服务组件,从而对获取的服务数据进行处理;
第二判断单元,用于判断是否已经成功处理服务数据,若是,则结束调用,反之,则转至执行修正单元。
修正单元,用于通过JAVA反射机制调用预设的服务组件异常处理方法进行修正;
所述获取单元的输入端与加载模块的输出端连接,所述获取单元的输出端依次通过第一判断单元、处理单元和第二判断单元进而与修正单元的输入端连接。
参照图5,进一步作为优选的实施方式,所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志并结束调用。
下面结合具体的实施例对本发明作进一步详细说明。
本实施例主要介绍本发明在电力行业上的业务应用。此时,服务实现为业务实现,服务的方法为业务的方法,服务调用为业务调用,服务组件为业务组件。
本发明通过JAVA语言反射机制提供动态的链接程序组件,允许程序创建和控制任何类的对象(根据安全性限制),无需提前硬编码目标类。本发明具有以下特点:
(1)各业务组件只需根据自己的业务逻辑进行编码,而无需关心调用者的调用方式,也不需要定义和实现调用相关的接口。
(2)在调用服务上对业务组件进行注册,注册的主要信息包括组件名称、业务类名称、业务方法名称、输入参数类型和输出参数类型。
(3)调用服务通过注册信息,根据不同业务调用相应的业务组件,调用过程通过JAVA反射机制来实现。
(4)服务调用者还可以分享自己的一些常用方法,通过JAVA反射机制供业务组件使用。
本发明在电力行业上的业务应用的工作过程为:服务运行后,先加载各个业务组件的注册信息,然后通过JAVA反射机制调用业务获取数据的方法并判断第一次调用(即调用业务获取数据的方法)是否出错。若第一次调用出错,则调用预设的业务组件处理错误的方法;如果第一次调用成功,则接着通过JAVA反射机制调用业务处理数据的方法并判断第二次调用(即调用业务处理数据的方法)是否出错。若第二次调用出错,则再次调用预设的业务组件处理错误的方法;若第二次调用成功,则结束运行线程。
本发明使用JAVA反射机制可以灵活地配置业务方法与容器(即业务组件)之间的调用方式,能够减少服务管理者与业务组件之间的依赖关系。此外,本发明能够创建灵活的代码,这些代码可以在运行时装配,而无需在服务组件之间进行源代码链接。因此,本发明在编写与执行时,能使程序代码接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码,可构建更为灵活的应用。
与现有技术相比,本发明能减少服务实现与服务调用之间的关联度,业务实现的时候不再需要关心与调用者之间的接口定义,也不需要为此引入大量的接口定义规格和环境,业务实现只需要关心业务逻辑的实现和方法的输入输出,更加简单、方便和高效。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (7)
1.一种基于JAVA反射技术的服务注册配置方法,其特征在于:包括:
A、在调用服务上对服务组件进行注册;
B、调用服务加载服务组件的注册信息;
C、调用服务根据服务组件的注册信息和服务需求,通过JAVA反射机制调用相应的服务组件,从而对相应的服务数据进行获取和处理。
2.根据权利要求1所述的一种基于JAVA反射技术的服务注册配置方法,其特征在于:所述服务主件的注册信息包括服务组件名称、服务类名称、服务方法名称、输入参数类型和输出参数类型。
3.根据权利要求1所述的一种基于JAVA反射技术的服务注册配置方法,其特征在于:所述步骤C,其包括:
C1、调用服务根据服务组件的注册信息和服务需求,通过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反射技术的服务注册配置***,其特征在于:所述修正单元还连接有记录日志生成单元,所述记录日志生成单元用于根据修正的结果生成相应的记录日志并结束调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310518203.5A CN103544016A (zh) | 2013-10-28 | 2013-10-28 | 一种基于java反射技术的服务注册配置方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310518203.5A CN103544016A (zh) | 2013-10-28 | 2013-10-28 | 一种基于java反射技术的服务注册配置方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103544016A true CN103544016A (zh) | 2014-01-29 |
Family
ID=49967497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310518203.5A Pending CN103544016A (zh) | 2013-10-28 | 2013-10-28 | 一种基于java反射技术的服务注册配置方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544016A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260179A (zh) * | 2015-09-24 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种实现flex与servlet交互的方法 |
CN107194254A (zh) * | 2017-05-25 | 2017-09-22 | 深圳Tcl新技术有限公司 | 电视终端及Java反射控制方法和计算机可读存储介质 |
CN107547263A (zh) * | 2017-07-26 | 2018-01-05 | 南京邮电大学 | 一种实现网元设备自动化查找模板配置的方法 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构*** |
CN108958842A (zh) * | 2018-07-12 | 2018-12-07 | 北京猫眼文化传媒有限公司 | 应用程序以及应用程序的业务插件使用方法 |
CN110069471A (zh) * | 2017-12-07 | 2019-07-30 | 航天信息软件技术有限公司 | 一种数据的迁移方法和*** |
CN116700834A (zh) * | 2023-08-07 | 2023-09-05 | 天津华来科技股份有限公司 | 一种App模块化加载方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030740A1 (en) * | 2002-08-09 | 2004-02-12 | Stelting Stephen A. | Method and system for automating generation of web services from existing service components |
CN1783058A (zh) * | 2004-11-05 | 2006-06-07 | 兄弟工业株式会社 | 服务提供***和用于接收服务的设备 |
CN101075919A (zh) * | 2006-06-22 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种互联网业务的监控***和监控方法 |
CN102053860A (zh) * | 2009-10-30 | 2011-05-11 | 中国人民解放军国防科学技术大学 | 基于CORBA的OSGi分布式扩展***及方法 |
CN102629939A (zh) * | 2012-03-14 | 2012-08-08 | 广东电网公司电力科学研究院 | 电力企业服务总线实现方法及装置 |
CN102810057A (zh) * | 2011-05-30 | 2012-12-05 | ***股份有限公司 | 一种记录日志的方法 |
-
2013
- 2013-10-28 CN CN201310518203.5A patent/CN103544016A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030740A1 (en) * | 2002-08-09 | 2004-02-12 | Stelting Stephen A. | Method and system for automating generation of web services from existing service components |
CN1783058A (zh) * | 2004-11-05 | 2006-06-07 | 兄弟工业株式会社 | 服务提供***和用于接收服务的设备 |
CN101075919A (zh) * | 2006-06-22 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 一种互联网业务的监控***和监控方法 |
CN102053860A (zh) * | 2009-10-30 | 2011-05-11 | 中国人民解放军国防科学技术大学 | 基于CORBA的OSGi分布式扩展***及方法 |
CN102810057A (zh) * | 2011-05-30 | 2012-12-05 | ***股份有限公司 | 一种记录日志的方法 |
CN102629939A (zh) * | 2012-03-14 | 2012-08-08 | 广东电网公司电力科学研究院 | 电力企业服务总线实现方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260179A (zh) * | 2015-09-24 | 2016-01-20 | 浪潮(北京)电子信息产业有限公司 | 一种实现flex与servlet交互的方法 |
CN108255545A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 组件间的功能调用方法、装置及组件化架构*** |
CN107194254A (zh) * | 2017-05-25 | 2017-09-22 | 深圳Tcl新技术有限公司 | 电视终端及Java反射控制方法和计算机可读存储介质 |
CN107194254B (zh) * | 2017-05-25 | 2021-06-15 | 深圳Tcl新技术有限公司 | 电视终端及Java反射控制方法和计算机可读存储介质 |
CN107547263A (zh) * | 2017-07-26 | 2018-01-05 | 南京邮电大学 | 一种实现网元设备自动化查找模板配置的方法 |
CN110069471A (zh) * | 2017-12-07 | 2019-07-30 | 航天信息软件技术有限公司 | 一种数据的迁移方法和*** |
CN108958842A (zh) * | 2018-07-12 | 2018-12-07 | 北京猫眼文化传媒有限公司 | 应用程序以及应用程序的业务插件使用方法 |
CN116700834A (zh) * | 2023-08-07 | 2023-09-05 | 天津华来科技股份有限公司 | 一种App模块化加载方法及*** |
CN116700834B (zh) * | 2023-08-07 | 2023-10-24 | 天津华来科技股份有限公司 | 一种App模块化加载方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544016A (zh) | 一种基于java反射技术的服务注册配置方法及*** | |
CN106383784A (zh) | 软件自动化测试方法及*** | |
US20070089117A1 (en) | Implementation system for business applications | |
CN105446799A (zh) | 一种计算机***中进行规则管理的方法及*** | |
CN103176892B (zh) | 一种页面监控方法及*** | |
CN103324173A (zh) | 基于中间件的多异构机器人协作方法 | |
CN102663552A (zh) | 一种支持在线自演化的动态工作流引擎 | |
CN101739460A (zh) | 基于网格的空间数据源统一化服务***和方法 | |
CN103780686A (zh) | 一种云组织内自定义申请审批流程的方法及*** | |
CN109445754A (zh) | 数据集成访问装置、方法及存储介质 | |
CN109254989B (zh) | 一种基于元数据驱动的弹性etl架构设计的方法及装置 | |
CN108154341A (zh) | 基于数据流和工作流的统一调度平台及工作方法 | |
CN103544060A (zh) | 一种基于webservice的服务调度***及方法 | |
CN103514026A (zh) | 一种通过javascript直接调用java api的方法 | |
CN102945264A (zh) | 智能启用分布式事务的方法 | |
CN103051728A (zh) | 一种远程过程调用方法 | |
CN103561113B (zh) | Web Service接口的生成方法及装置 | |
CN101639775B (zh) | 一种组件构建方法和装置 | |
CN104796465B (zh) | 云平台业务处理方法和*** | |
CN101739297B (zh) | 普适服务动态更新中服务对象状态转移***及其方法 | |
CN109634681A (zh) | 一种向制造执行***上传数据的方法及装置 | |
CN106993060A (zh) | 一种基于服务架构的主数据集成方法 | |
CN110765009B (zh) | 一种自动化执行的ai语音软件测试框架 | |
CN101246421A (zh) | 一种基于工作流引擎实现的通用框架 | |
CN103914304A (zh) | 一种基于sap平台的不同结构类型参数转换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140129 |