KoTime v2.2.8新增了热更新功能,可以简单的通过页面操作实现代码的热部署,这样一些简单代码的修改就不需要重新部署,毕竟挺累的!
下面介绍一下使用方式.
添加v2.2.8的依赖即可,如果项目中没有引入邮件相关的依赖,启动会报错,此时需要加入spring-boot-starter-mail
<dependency>
<groupId>cn.langpygroupId>
<artifactId>ko-timeartifactId>
<version>2.2.9version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-mailartifactId>
dependency>
切面范围需要包括你想检测的调用链路范围
ko-time.pointcut=execution(public * com.huoyo..*.*(..))
配置完以后启动项目测试一下:
访问 /koTime ,就能看到热更新的菜单栏:

注意:该功能基于 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("运行到这里");
}
}
依次点击maven clean和maven compile:

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

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

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