我正在创建一个 Spring Server,不幸的是,它必须在下周“播出”,并且不能再关闭了。我有几个问题:
- 我可以在服务器运行时操作/更新Java 类吗?
- 我可以在服务器运行时操作/更新HTML 页面吗?
- 如果不可能,如果我必须关闭服务器并使用更新重新启动它,我该如何保留我的数据库?
- 你会以 JavaApplication、JettyRun、Maven、Gradle 还是其他方式运行它?
我正在创建一个 Spring Server,不幸的是,它必须在下周“播出”,并且不能再关闭了。我有几个问题:
您应该有 2 台服务器并在它们前面放置一个负载均衡器,更新时您可以将所有内容路由到一台服务器并重新启动另一台服务器。
至于你的问题:
我认为没有一种简单而标准的方法可以做到这一点。编辑:但是,如果您使用的是 Web 容器,其中一些,如 tomcat 支持更新(重新部署)而不关闭服务器。您可能仍然会丢失一些流量。请阅读:Tomcat 文档
大多数 Web 容器都支持这一点,所以我想我的答案是肯定的。
数据库正在使用磁盘。重新启动将使一切保持原状,而且,您很少需要重新启动数据库。
Maven 和 Gradle 更多地用于构建/测试,而不是用于运行真正部署的应用程序,所以我会排除这些。
祝你好运!
您可以在不需要重新启动的情况下部署您的应用程序,这样您就可以在运行时更改类和 html 页面中的方法,但这看起来像是在破解您的应用程序。如果您添加新的类 + html 页面或更改类中的字段,则它不起作用并且还会导致您的应用程序失效。