KoTime:热更新-不重启替换代码

200 阅读1分钟

一、前言

KoTime v2.2.8新增了热更新功能,可以简单的通过页面操作实现代码的热部署,这样一些简单代码的修改就不需要重新部署,毕竟挺累的!

下面介绍一下使用方式.


二、使用方式

2.1 添加依赖

添加最新版依赖即可,如果项目中没有引入邮件相关的依赖,启动会报错,此时需要加入spring-boot-starter-mail

<dependency>
    <groupId>cn.langpy</groupId>
    <artifactId>ko-time</artifactId>
    <version>2.2.9</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.2 配置切面范围

切面范围需要包括你想检测的调用链路范围

ko-time.pointcut=execution(public * com.huoyo..*.*(..))

配置完以后启动项目测试一下:

访问 /koTime ,就能看到热更新的菜单栏: 在这里插入图片描述

2.3 更新代码

注意:该功能基于 jvm attach api 不支持在类中新增方法或者属性后进行热更新,仅支持方法内部的代码更改

假设线上代码为:

package com.huoyo.demo.controller;
public class IndexController{
    public static void test(MethodNode current) {
        System.out.print("测试方法");
    }
}

修改以后:

package com.huoyo.demo.controller;
public class IndexController{
    public static void test(MethodNode current) {
        System.out.print("查看参数:"+current);
        System.out.print("测试方法");
        System.out.print("运行到这里");
    }
}

2.4 编译

依次点击maven clean和maven compile: 在这里插入图片描述


2.5 上传代码

打开KoTime页面,在target/classes目录下选择编译好的要修改的类文件:

在这里插入图片描述

然后填写类的全路径,确定即可:

在这里插入图片描述

三、总结

以上就是KoTime的热更新功能,想了解更多详情请参考KoTime文档