PlayFramework如何在运行时显示代码更改?

Pre*_*hev 2 java spring tomcat playframework playframework-2.0

PlayFramework如何在运行时显示代码更改而无需重新部署和重新部署?它是否在内部使用tomcat?如果没有,我是否可以将我的Spring应用程序放在它使用的服务器容器之上,并获得运行时更改的好处.

注意:我知道在技术上也可以使用Tomcat,但是,形成我所经历的,它是非常错误的,并且不能一直工作.有时,它甚至需要重新加载整个应用程序上下文(大约16秒),这是不合适的.

Cod*_*nci 5

正如Zenklys指出的那样,Play的工作原理是检查java文件的最后修改日期,并使用在运行时生成的.class文件交叉引用它们.如果它识别出某些内容已发生变化,那么它会在运行时重新编译它们.

在Play 1.x中 - 使用eclipse jdt编译器(org.eclipse.jdt.internal.compiler.Compiler)完成重新编译.如果你想看看Play 1.x的代码,请看下面的类 - https://github.com/playframework/play/blob/master/framework/src/play/classloading/ApplicationCompiler.java

在Play 2.x中,看起来Play通过与SBT工具链接来实现它.看看这个 - https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/core/system/ApplicationProvider.scala