当前位置: 首页 > 知识库问答 >
问题:

Spring靴内热插拔

严欣怡
2023-03-14

我一直在用Spring Boot做P.O.C。

到目前为止,它运行得非常好,前景看好,但有一个主要缺点:我使用的是嵌入式服务器(即,将web应用程序打包在.jar)中,因此在开发时,每次更改CSS、HTML或JS文件时,我都必须重新构建jar并重新启动服务器。没有热插拔。这确实减慢了UI开发的速度。

我可以想出几个快速修复方法,比如从不同的域中加载静态资源并从本地nginx提供服务,以及类似的其他变体,但是在使用IntelliJ/Eclipse时,不是有某种内置选项吗?

共有1个答案

房唯
2023-03-14

有几种选择。在IDE中运行(尤其是在调试时)是进行开发的好方法(所有现代IDE都允许重新加载静态资源,通常还允许热交换Java类更改)。Spring Boot devtools是一种获得相当大提升的廉价方式(只需将其添加到您的类路径中即可)。它通过在检测到更改时在热JVM中重新启动应用程序来工作。它还会在运行时关闭像thymeleaf缓存这样的东西,所以你不必记得自己做这件事。如果使用更高级别的工具编写代码,则可以将其与外部CSS/JS编译器进程一起使用。

Spring加载不再推荐,但可能仍在使用。如果您需要零延迟的热交换(例如JRebel),更复杂的基于代理的工具工作得更好。

有关一些最新内容,请参阅文档

 类似资料:
  • 任何人都可以向我展示或指出一个不使用Spring引导 gradle 插件的Spring引导 gradle 项目。 我正在寻找一个类似springbootstarterwebhelloworld的例子,它不使用gradle插件。 我无法想象插件是一个需求,但搜索示例似乎都依赖于gradle插件,这在我的环境中不是一个选项,不,我也不能切换到maven。 理想情况下,gradle构建将通过添加以下内容

  • 我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹都在src/main/Resources/静态和src/main/Resources/tem板下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我已经按照说明创建了一个war文件,当我将其部署到Tomcat 7时——静态内容丢失了,只显示了Thymeleaf html模板。

  • 19.5 热插拔 由于Spring Boot程序只是普通的Java程序,所以JVM热插拔应该是开箱即用的。JVM热插拔在某种程度上受限于能够替换的字节码,为了获得更完整的解决方案,可以使用JRebel或Spring Loaded项目。spring-boot-devtools模块也包含对应用迅速重启的支持。 详细信息请参阅下面的第20章开发者工具和如何“热插拔”部分。

  • 作为一个新的Web应用程序项目的一部分,我计划学习Spring。我开始通读Spring框架参考。当我在谷歌上搜索时,我遇到了Spring boot。我所理解的是,Spring boot通过减少配置帮助构建应用程序的速度比Spring快得多。现在我有点困惑,我应该继续学习Spring还是跳转到Spring boot。我的目的是了解Spring作为一个框架是如何工作的,而不是一些特性。所以请让我知道,

  • 我使用Spring3.1。1和Hibernate验证程序4.3。0.Final,在更改默认MessageInterpolator时遇到问题,默认MessageInterpolator从ValidationMessages(在类路径中)获取验证消息。 我想使用ResourceBundleMessageInterpolator,它将从我的spring消息源获取消息 我在我的应用程序上下文中做了类似的事

  • 我正在使用Spring boot 2.0.2应用程序通过HTTPS对外部api进行REST api调用。 我是TLS和SSL的新手。我的理解是,TLS是一种更安全的方式,用于传输安全的敏感数据。 我的问题是: 如何确定我的应用程序使用的TLS版本