Play框架在运行时卸载jar

时间:2015-11-29 11:17:59

标签: jvm playframework-2.0 classloader

我正在尝试管理我的play框架应用程序的依赖项。我试图删除/更新我的类路径中存在的一些jar。这甚至可能吗?

很好地解释了play框架如何管理类加载器。我理解为了在开发模式下获得代码的热重新部署Play正在重新启动应用程序类加载器并再次加载所有类。这是对的吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

不是真的Play管理热重装,而是Play SBT插件。

Play应用程序的main方法位于play.core.server.NettyServer。该方法接收类型为SBTLink的重新加载器,每次请求到达服务器时,应用程序都会委派检查重新加载器是否有任何代码更改的任务。

如果存在代码更改,则删除现有的类加载器并替换为包含更新的字节码的新类加载器。应用程序重新启动,但当然,JVM不是。

播放不是为了在运行时提供动态交换Jars而设计的。为此,您需要查看OSGi之类的内容(在使用它几年后我不会亲自推荐)。