Java中是否有一种机制可以让我将一个函数或可运行的东西注入到jar即将被卸载时将被调用的东西中?
请注意,JVM 通常会保持正常运行。那排除了Runtime.addShutdownHook
。
(需要它来促进热部署到 Web 服务器)。
Java中是否有一种机制可以让我将一个函数或可运行的东西注入到jar即将被卸载时将被调用的东西中?
请注意,JVM 通常会保持正常运行。那排除了Runtime.addShutdownHook
。
(需要它来促进热部署到 Web 服务器)。
据我所知,Java SE 中什么都没有。
但是由于您提到“Web 服务器”,您可能正在查看 Java EE 解决方案。然后是ServletContextListener
. 只需实现该接口并在web.xml
.
对于纯 Java SE 解决方案,我不会将库加载绑定到类,而是绑定到实例。这样,您可以更严格地控制何时加载和卸载。
您甚至可以finalize
在此处使用,因为这是适合的少数情况之一。这将具有不确定性的缺点(即,当加载新版本时,您不能依赖最终确定的对象)。