【技术实现步骤摘要】
Java代码热处理方法及装置、介质、设备
[0001]本专利技术涉及
Java
,尤其是涉及一种
Java
代码热处理方法及装置
、
介质
、
设备
。
技术介绍
[0002]Java
应用启动时,会传递给
Java
虚拟机一系列的类路径,在
Java
应用运行中,如果需要类,
Java
虚拟机便会按照类路径寻找并加载类
。Java
虚拟机加载类是通过类加载器完成的,具体采用了一种称为双亲委派的机制来寻找类
。
当一个类加载器收到了类加载请求,它首先把这个类委托给父类加载器去完成,每一层类加载都按此处理,因此所有的加载请求都应该传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成该加载请求时,这个时候子加载器才会尝试自己去加载
。
类被加载后一般就不会再发生变化,但为了及时修复应用漏洞或快速迭代应用功能,不可避免会有在运行中修改
Java
代码的需求
。
技术实现思路
[0003]针对以上至少一个技术问题,本专利技术实施例提供一种
Java
代码热处理方法及装置
、
介质
、
设备
。
[0004]根据第一方面,本专利技术实施例提供的
Java
代码热处理方法,包括:
[0005]通过代码资源管理器对代 ...
【技术保护点】
【技术特征摘要】
1.
一种
Java
代码热处理方法,其特征在于,包括:通过代码资源管理器对代码监听器进行初始化,以使初始化后的所述代码监听器能够对磁盘中存储的代码资源是否发生更改进行监听;其中,每一个代码资源具有一个唯一的
ID
;当所述代码监听器监听到所述代码资源发生更改时,利用更改后的代码资源对所述磁盘上对应同一个
ID
的代码资源进行替换,调用代码资源仓库的更新接口,并向所述更新接口传入发生更改的代码资源的
ID
和更改后的代码资源,以使所述代码资源仓库将该
ID
对应的原代码资源替换为更改后的代码资源
。2.
根据权利要求1所述的方法,其特征在于,还包括:在所述代码资源仓库接收到更改后的代码资源后,对更改后的代码资源进行初始化,得到该代码资源对应的类加载器;其中,所述类加载器具有优先加载当前层级的代码资源的功能;一个代码资源对应一个类加载器
。3.
根据权利要求2所述的方法,其特征在于,还包括:通过代码统一调用器接收用户发送来的类调用请求;其中,所述类调用请求中包括代码资源的
ID、
目标类的标识
、
所述目标类中的目标方法和所述目标方法的入参;通过所述代码统一调用器调用所述代码资源仓库的类加载接口,将所述类调用请求中的
ID
和目标类的标识传入所述类加载接口,以使所述代码资源仓库从该
ID
对应的代码资源中加载该标识对应的目标类,将加载到的目标类发送给所述代码统一调用器;通过所述代码统一调用器采用反射调用方法执行所述目标类中传入所述入参的目标方法
。4.
根据权利要求3所述的方法,其特征在于,所述代码资源仓库从该
ID
对应的代码资源中加载该标识对应的目标类,包括:根据该
ID
,判断所述代码资源仓库是否存储对应的代码资源;若无,则从
java
虚拟机中获取该
...
【专利技术属性】
技术研发人员:张伟庆,时凯旋,
申请(专利权)人:浪潮通用软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。