你是否在开发时有这样的体验,编写完一个插件时,修改了一些代码,但是却没有立即生效,需要重新copytolib,然后重新启动,修改的代码才会生效,偶尔一两次还好,如果经常这样玩,人都要被搞崩溃了。
有一个方法就可以解决这个问题,那就是热部署。什么是热部署呢?热部署就是正在运行的应用。修改了它的源码之后,在不重新启动的情况下,可以把修改的内容编译,实现运行时更新class文件。
下面介绍一下,在苍穹本地开发环境,怎么实现热部署方式。
第一步,在debug-bos-mservice 中添加类: kd.bos.HotSwapClassManager 和 kd.bos.dataentity.TypesContainer,将附件中的bos.rar解压到kd_bos\bos\debug-bos-mservice\src\main\java\kd\bos即可。
第二步,在启动类main函数里设置监控的路径和热部署的jar包
HotSwapClassManager.getInstance().startWatch("C:\\bos-evn-dev\\mservice\\lib\\bos"); //需要启动热替换的jar包可以写多个,用逗号隔开 HotSwapClassManager.getInstance().enableHotSwap("bos-devportal-new-plugin-1.0.jar");
要设置某一个类为热部署,将jar包名在参数里加上即可
第三步,在上一步设置好的工程里修改代码之后,点击工程对应的copytolib,就可以实现更新代码了,不用重新启动工程,这样就实现了热部署。值得注意的是,想bos-form-mvc这些比较底层的包,是不能被替换的,否则容易出现问题。
看到这里是不是很心动呢,赶快去试试吧!代码文件在附件!!!
热部署.rar(5.09KB)
推荐阅读