在运行时编译java类以便在不停止服务器的情况下更新项目是一个好主意吗?
我的下一个问题是:我可以替换现有对象的类吗?我的意思是更新一些方法行为而不重新创建Object。
答案 0 :(得分:1)
在运行时为更新项目编译java类是个好主意 没有停止服务器?
我相信你的意思是在服务器上更新新编译的类而不停止它。你总是可以这样做但是如果已经加载了类,那么它将没有任何区别,并且jvm将继续使用该类的旧版本。
接下来的问题是:我可以替换现有对象的类吗?一世 意味着更新一些方法行为而不重新创建Object。
与第一个问题相同的答案。如果该类已加载,则JVM将使用旧方法/行为。如果你有一个类的对象意味着它已经被加载。
答案 1 :(得分:1)
我会使重新部署过程如此之快并不重要。 (这并不总是一个选项)但我尝试确保我可以在10秒内完成编译,重新部署和重新启动服务器进程。在这种情况下,您不需要动态编译。
注意:如果您调试系统并重新编译代码,则可以从IDE热交换正在运行的系统的更改。 (通常有效但有时并不取决于你改变的内容)