CN109445878A - 在运行时对Java类进行注入的方法及装置 - Google Patents

在运行时对Java类进行注入的方法及装置 Download PDF

Info

Publication number
CN109445878A
CN109445878A CN201811188877.2A CN201811188877A CN109445878A CN 109445878 A CN109445878 A CN 109445878A CN 201811188877 A CN201811188877 A CN 201811188877A CN 109445878 A CN109445878 A CN 109445878A
Authority
CN
China
Prior art keywords
java class
java
class
diversification
configuration
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.)
Granted
Application number
CN201811188877.2A
Other languages
English (en)
Other versions
CN109445878B (zh
Inventor
易存道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Boln Software Ltd By Share Ltd
Original Assignee
Beijing Boln Software Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Boln Software Ltd By Share Ltd filed Critical Beijing Boln Software Ltd By Share Ltd
Priority to CN201811188877.2A priority Critical patent/CN109445878B/zh
Publication of CN109445878A publication Critical patent/CN109445878A/zh
Application granted granted Critical
Publication of CN109445878B publication Critical patent/CN109445878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开一种在运行时对Java类进行注入的方法及装置,其中,方法包括:在Java项目运行时,获取用户通过指令所选择的多元化组合配置;通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。本发明实施例能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,灵活可控不影响业务性能。

Description

在运行时对Java类进行注入的方法及装置
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种在运行时对Java类进行注入的方法及装置。
背景技术
Java项目中在对业务的监控或者数据采集的具体实现,可以通过多种方式达到对已有业务处理逻辑扩充,从而获取所关注模块或具体业务流程中的信息。如加入自身所需处理逻辑、修改已编译字节码文件或者通过动态代理模式等。
除上述方式借助JDK1.5引入的java agent特性,可以通过在main方法执行之前自定义转换器对将被加载的类字节码做以修改或替换,从而使得虚拟机中加载到的类信息包含所需的监控或采集逻辑。
现有方式根据不同需求选取合适方式可以满足较多数场景。但是,现有方式受制于实际运行情景或者实现方式的可行性,无法获取到已有实现的源文件加以修改,或不能够根据需求在不影响当前业务进行添加修改以及恢复已修改内容。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种在运行时对Java类进行注入的方法及装置。
第一方面,本发明实施例提出一种在运行时对Java类进行注入的方法,包括:
在Java项目运行时,获取用户通过指令所选择的多元化组合配置;
通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;
若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
可选地,用户通过指令所选择的多元化组合配置,包括:
对指定Java类的修改、恢复、功能开启与否的配置;
根据类名规则、继承关系以及访问权限对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
可选地,所述方法还包括:
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
可选地,在若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效之后,所述方法还包括:
将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
第二方面,本发明实施例还提出一种在运行时对Java类进行注入的装置,包括:
获取模块,用于在Java项目运行时,获取用户通过指令所选择的多元化组合配置;
筛选模块,用于通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;
注入模块,用于若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
可选地,用户通过指令所选择的多元化组合配置,包括:
对指定Java类的修改、恢复、功能开启与否的配置;
根据类名规则、继承关系以及访问权限对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
可选地,所述注入模块,还用于
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
可选地,所述装置还包括:
展示模块,用于将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器、总线及存储在存储器上并可在第处理器上运行的计算机程序;
其中,所述处理器,存储器通过所述总线完成相互间的通信;
所述处理器执行所述计算机程序时实现上述方法。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法。
由上述技术方案可知,本发明实施例提供的一种在运行时对Java类进行注入的方法及装置,通过在Java项目运行时,获取用户通过指令所选择的多元化组合配置,通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类,若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效,由此,能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,灵活可控不影响业务性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种在运行时对Java类进行注入的方法的流程示意图;
图2为本发明一实施例提供的一种在运行时对Java类进行注入的装置的结构示意图;
图3为本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种在运行时对Java类进行注入的方法的流程示意图,如图1所示,本实施例的在运行时对Java类进行注入的方法,包括:
S1、在Java项目运行时,获取用户通过指令所选择的多元化组合配置。
S2、通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类。
S3、若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
在具体应用中,用户通过指令所选择的多元化组合配置,可以包括:
对指定Java类的修改、恢复、功能开启与否的配置(可分对java类是否注入或注入后功能是否生效工作);
根据类名规则、继承关系以及访问权限等方面对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
可以理解的是,根据类名规则、继承关系以及访问权限等方面对Java类的筛选规则配置,本实施例根据所需更为细致的可以精确到类中具体方法。
可以理解的是,转换数量阈值的配置,是使注入类具有可控性,保障了在不确定当前规则影响范围时以免对业务性能造成负担。
可以理解的是,多种功能Java类的求同存异配置,可以通过类似配置区分出多组类的集合,不同的功能实现注入为不同结果且互不重合。
本实施例针对注入的灵活性,提供了从整体到细节的多方位配置。
本发明实施例提供的一种在运行时对Java类进行注入的方法,通过在Java项目运行时,获取用户通过指令所选择的多元化组合配置,通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类,若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效,由此,能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,灵活可控不影响业务性能。
进一步地,在上述实施例的基础上,本实施例所述方法还可以包括:
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
可以理解的是,本实施例能够对已注入类根据需求恢复其已有修改,做到灵活可控不影响业务性能。
进一步地,在上述实施例的基础上,在所述步骤S3之后,所述方法还可以包括:
将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
可以理解的是,注入过程中无论失败与成功,其结果都会实时反馈展示给用户。由此,能够预估整体整体完成情况,同时可更新当前进度,可区分出已完成以及待完成任务信息。因资源不足或其他原因导致注入失败时,也可纵观整体类信息,对用户通过指令所选择的多元化组合配置进行调整再次尝试注入。
可以理解的是,本实施例所述方法整体过程的进行,多个场景可根据所需对不同规则不同注入处理可同时进行,互不影响且又能作为一个整体统一评估可行性与风险性。
本发明实施例提供的一种在运行时对Java类进行注入的方法,能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,能够对已注入类根据需求恢复其已有修改,做到灵活可控不影响业务性能。插件式、可交互注入,多种功能均可采取本实施例所述方法各自配置,在任意时刻注入生效,且在注入过程中,能够对注入结果预估,对注入过程状态实时跟进,便于再次调整使得注入结果与所期待更切合。
图2示出了本发明一实施例提供的一种在运行时对Java类进行注入的装置的结构示意图,如图2所示,本实施例的在运行时对Java类进行注入的装置,包括:获取模块21、筛选模块22和注入模块23;其中:
所述获取模块21,用于在Java项目运行时,获取用户通过指令所选择的多元化组合配置;
所述筛选模块22,用于通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;
所述注入模块23,用于若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
具体地,所述获取模块21在Java项目运行时,获取用户通过指令所选择的多元化组合配置;所述筛选模块22通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;所述注入模块23若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
在具体应用中,用户通过指令所选择的多元化组合配置,可以包括:
对指定Java类的修改、恢复、功能开启与否的配置(可分对java类是否注入或注入后功能是否生效工作);
根据类名规则、继承关系以及访问权限等方面对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
可以理解的是,根据类名规则、继承关系以及访问权限等方面对Java类的筛选规则配置,本实施例根据所需更为细致的可以精确到类中具体方法。
可以理解的是,转换数量阈值的配置,是使注入类具有可控性,保障了在不确定当前规则影响范围时以免对业务性能造成负担。
可以理解的是,多种功能Java类的求同存异配置,可以通过类似配置区分出多组类的集合,不同的功能实现注入为不同结果且互不重合。
本实施例针对注入的灵活性,提供了从整体到细节的多方位配置。
本发明实施例提供的一种在运行时对Java类进行注入的装置,应用于处理器,通过在Java项目运行时,获取用户通过指令所选择的多元化组合配置,通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类,若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效,由此,能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,灵活可控不影响业务性能。
进一步地,在上述实施例的基础上,所述注入模块23,还可用于
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
可以理解的是,本实施例能够对已注入类根据需求恢复其已有修改,做到灵活可控不影响业务性能。
进一步地,在上述实施例的基础上,所述装置还可以包括图中未示出的:
展示模块,用于将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
可以理解的是,注入过程中无论失败与成功,其结果都会实时反馈展示给用户。由此,能够预估整体整体完成情况,同时可更新当前进度,可区分出已完成以及待完成任务信息。因资源不足或其他原因导致注入失败时,也可纵观整体类信息,对用户通过指令所选择的多元化组合配置进行调整再次尝试注入。
可以理解的是,本实施例所述装置整体过程的进行,多个场景可根据所需对不同规则不同注入处理可同时进行,互不影响且又能作为一个整体统一评估可行性与风险性。
本发明实施例提供的一种在运行时对Java类进行注入的装置,能够在Java项目运行时,根据实时需求修改配置,在当前加载类中筛选出符合规则类作为可注入Java类进行注入,即修改其运行时字节码加入业务所需采集逻辑,能够对已注入类根据需求恢复其已有修改,做到灵活可控不影响业务性能。插件式、可交互注入,多种功能均可采取本实施例所述方法各自配置,在任意时刻注入生效,且在注入过程中,能够对注入结果预估,对注入过程状态实时跟进,便于再次调整使得注入结果与所期待更切合。
本实施例的在运行时对Java类进行注入的装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图3示出了本发明一实施例提供的一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器301、存储器302、总线303及存储在存储器302上并可在处理器301上运行的计算机程序;
其中,所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301执行所述计算机程序时实现上述方法实施例所提供的方法,例如包括:在Java项目运行时,获取用户通过指令所选择的多元化组合配置;通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例所提供的方法,例如包括:在Java项目运行时,获取用户通过指令所选择的多元化组合配置;通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种在运行时对Java类进行注入的方法,其特征在于,包括:
在Java项目运行时,获取用户通过指令所选择的多元化组合配置;
通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;
若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
2.根据权利要求1所述的方法,其特征在于,用户通过指令所选择的多元化组合配置,包括:
对指定Java类的修改、恢复、功能开启与否的配置;
根据类名规则、继承关系以及访问权限对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
4.根据权利要求1所述的方法,其特征在于,在若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效之后,所述方法还包括:
将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
5.一种在运行时对Java类进行注入的装置,其特征在于,包括:
获取模块,用于在Java项目运行时,获取用户通过指令所选择的多元化组合配置;
筛选模块,用于通过所述多元化组合配置,在当前加载类中筛选出符合规则类作为可注入Java类;
注入模块,用于若所述可注入Java类的数目未达到转换数量阈值且当前系统资源充足,则将所述可注入Java类开始注入所述Java项目中,且注入成功的Java类立即生效。
6.根据权利要求5所述的装置,其特征在于,用户通过指令所选择的多元化组合配置,包括:
对指定Java类的修改、恢复、功能开启与否的配置;
根据类名规则、继承关系以及访问权限对Java类的筛选规则配置;
转换数量阈值的配置;
多种功能Java类的求同存异配置。
7.根据权利要求5所述的装置,其特征在于,所述注入模块,还用于
在将所述可注入Java类开始注入所述Java项目中时,若所述多元化组合配置与上一次多元化组合配置发生改变,综合上一次多元化组合配置中注入的Java类和本次多元化组合配置中筛选出的可注入Java类,恢复不再符合本次多元化组合配置的类的修改,补充或者重新注入本次多元化组合配置所筛选出的Java类。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
展示模块,用于将所述可注入Java类的注入进度、以及注入成功或失败的结果展示给用户。
9.一种电子设备,其特征在于,包括:处理器、存储器、总线及存储在存储器上并可在第处理器上运行的计算机程序;
其中,所述处理器,存储器通过所述总线完成相互间的通信;
所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN201811188877.2A 2018-10-12 2018-10-12 在运行时对Java类进行注入的方法及装置 Active CN109445878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811188877.2A CN109445878B (zh) 2018-10-12 2018-10-12 在运行时对Java类进行注入的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811188877.2A CN109445878B (zh) 2018-10-12 2018-10-12 在运行时对Java类进行注入的方法及装置

Publications (2)

Publication Number Publication Date
CN109445878A true CN109445878A (zh) 2019-03-08
CN109445878B CN109445878B (zh) 2023-05-23

Family

ID=65544798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811188877.2A Active CN109445878B (zh) 2018-10-12 2018-10-12 在运行时对Java类进行注入的方法及装置

Country Status (1)

Country Link
CN (1) CN109445878B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538635A (zh) * 2020-04-14 2020-08-14 北京宝兰德软件股份有限公司 系统资源画像的生成方法、装置、电子设备和存储介质
CN111625225A (zh) * 2020-05-28 2020-09-04 北京达佳互联信息技术有限公司 一种程序指定数据输出方法和装置
CN113094236A (zh) * 2021-04-21 2021-07-09 北京博睿宏远数据科技股份有限公司 一种系统数据采集方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771762A (zh) * 2009-01-06 2010-07-07 北京邮电大学 业务系统中业务动态加载系统及方法
CN101968740A (zh) * 2010-09-28 2011-02-09 中国工商银行股份有限公司 一种基于java class编译的业务数据动态调整服务器及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771762A (zh) * 2009-01-06 2010-07-07 北京邮电大学 业务系统中业务动态加载系统及方法
CN101968740A (zh) * 2010-09-28 2011-02-09 中国工商银行股份有限公司 一种基于java class编译的业务数据动态调整服务器及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
STATELS0: "探秘Java热部署三(Java agent agentmain)", 《HTTPS://WWW.ITDAAN.COM/BLOG/2018/05/20/AED8C0FDAD4C3A19C861675BEE4AEAFB.HTML》 *
王拓等: "Java类动态加载机制在铁路互联网售票中的设计与实现", 《铁路计算机应用》 *
苏航: "接口的意义及在java web三层架构中的作用分析", 《西部皮革》 *
费轶雯: "业务策略规则决策引擎", 《现代商业》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538635A (zh) * 2020-04-14 2020-08-14 北京宝兰德软件股份有限公司 系统资源画像的生成方法、装置、电子设备和存储介质
CN111538635B (zh) * 2020-04-14 2023-11-17 北京宝兰德软件股份有限公司 系统资源画像的生成方法、装置、电子设备和存储介质
CN111625225A (zh) * 2020-05-28 2020-09-04 北京达佳互联信息技术有限公司 一种程序指定数据输出方法和装置
CN113094236A (zh) * 2021-04-21 2021-07-09 北京博睿宏远数据科技股份有限公司 一种系统数据采集方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109445878B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN109445878A (zh) 在运行时对Java类进行注入的方法及装置
Araújo et al. Modeling and composing scenario-based requirements with aspects
Tajalli et al. PLASMA: a plan-based layered architecture for software model-driven adaptation
Nguyen et al. Modeling and managing variability in process-based service compositions
Schmidt et al. CoSMIC: An MDA generative tool for distributed real-time and embedded component middleware and applications
Salaün et al. Verification of a Self-configuration Protocol for Distributed Applications in the Cloud
US20190278692A1 (en) Method and system for evaluating upgrade campaigns
CN104461562A (zh) 一种任务创建的方法及系统
CN104407852B (zh) 一种基于代码隔离的嵌入式软件构建方法和调用方法
CN101379504A (zh) 虚拟角色
Medina et al. From composable design models to schedulability analysis with uml and the uml profile for marte
CN111124417B (zh) 工业控制程序的编译方法、装置、计算机设备和存储介质
Hirsch et al. Modeling collaborations with dynamic structural adaptation in mechatronic uml
Cavallaro et al. Satisfying requirements for pervasive service compositions
Clemente et al. Modeling with uml component-based and aspect oriented programming systems
CN114327383A (zh) 基于soa架构中间件的服务配置系统、方法及可读存储介质
Stojanovic et al. An approach to component-based and service-oriented system architecture design
CN109144597B (zh) 一种获得下载接口回调信息的方法和装置
Ermagan et al. Towards Tool Support for Service-Oriented Development of Embedded Automotive Systems.
Fratini et al. A service oriented approach for the interoperability of space mission planning systems
Dosch et al. On irregular behaviours of interactive stacks
Braem et al. Guiding service composition in a visual service creation environment
Gilson et al. Towards handling architecture design, variability and evolution with model transformations
Schreiner et al. Synthesizing communication middleware from explicit connectors in component based distributed architectures
Bodei et al. Predicting global usages of resources endowed with local policies

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant