在 spring 启动应用程序 @runtime 中动态加载外部 jar

Loading a external jars dynamically in a spring boot application @runtime

我们有一个 spring 引导应用程序,它引用了第 3 方 jar。第 3 方 jar 有所有的 getters 和 setters 。但是这个外部 JAR 会定期更改。这个外部 jar 位于 shared location 。有没有一种方法可以让 spring 启动应用程序在外部 jar 发生更改时知道新版本,并且 spring 启动应该以编程方式动态加载新的外部 jar。

@Sat....try this one credit goes to....

java -cp my-jar.jar -Dloader.path=外部-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.PropertiesLauncher

我不相信你可以多次加载一个罐子。当我们使用 JNI 并且必须加载 DLL 时,我们有一个类似的用例。您将 运行 遇到的问题是您需要垃圾收集器来清理对旧库的引用。

长话短说,不惜一切代价避免这样做。有更好的范例