这些场景经常在日常开发中遇到:1。测试环境验证问题,想要添加日志以帮助验证,人们以前使用插件。它必须以这种方式重新启动,并且某些应用程序已经启动了长时时间。
2.测试环境是音调。一些数据测试环境不一定是创建的,您需要在后台写下死亡。如果您使用提交代码的方法,则复杂性很大,并且很容易启动。风险很高。
如何解决:1。主要阶段:使用代码热更新的方法。如果此类型仅涉及一些添加日志,或在方法内进行一些小更改,则可以使用JVM提供的仪器接口。您可以通过此接口实现主要级别,以实现主部署。
例如:
2.通常,主要阶段的使用可以解决大多数问题,但是一些较旧的代码可能没有开发人员的本地汇编环境。无法生成类文件。
动态汇编的原理是使用Javacompiler实现内存汇编。核心思想是编译Java汇编命令。
例如
使用代码实现核心逻辑:
这样,您可以根据Java文件实现类文件,然后与初步阶段热更新方法结合使用,基本上可以解决日常开发中的常见问题。
在编译过程中需要加载动态汇编依赖性。我的实现是,动态汇编不是本地汇编,而是要测试环境编译,因为测试环境的依赖关系包绝对完成。因此,加载依赖软件包的路径指定了容器发布目录中的LIB文件夹中的所有文件。。
原始:https://juejin.cn/post/7099710892845039647