所以我找到了这个叫做hotswapagent的库,它使您能够为部署在应用程序容器上的应用程序执行热交换。它也可以很好地与XML配置和类文件配合使用,但有两种情况:
-
在某些 WAR 中,您可以将另一个 jar 用于"utils",并将其保留为主 WAR 的单独依赖项。如何替换 jar 中属于主 WAR 的类文件?
-
如何配置 Web 应用程序容器(如 Tomcat/Weblogic(以在运行时接受内部 jar 中的更改?
在主模块的资源目录(例如:src/main/resources
(中创建一个 hotswap-agent.properties 文件。在该文件中,将extraClasspath
设置为 utils 模块的目标类文件夹。它看起来像这样:extraClasspath=<path to utils module>/target/classes
下面是一个示例hotswap-agent.properties
文件,其中包含解释每个变量的默认值和注释:https://github.com/HotswapProjects/HotswapAgent/blob/master/hotswap-agent-core/src/main/resources/hotswap-agent.properties
现在,当您部署 Web 应用程序时,HotSwapAgent 会将额外的类加载到类路径上,您将能够在其中热交换代码。我假设如果您已经可以使用 HotSwapAgent 重新加载类,则不需要执行问题的第二部分。