【问题标题】:do you have to restart spring mvc every time?你每次都必须重新启动spring mvc吗?
【发布时间】:2017-01-06 16:43:31
【问题描述】:

经过几次大脑崩溃后,我终于让我的 spring mvc + thymeleaf 工作了,

但是每次我更改某些内容时,我都需要重新启动整个 spring 应用程序?

我什至尝试在 application.properties 中添加 spring.thymeleaf.cache=false,我看到有人建议,但是.. 没有。它不起作用。

【问题讨论】:

  • 您要在后端还是前端(百里香)进行更改?
  • 前端/index.html,它工作得很好,但我仍然需要重新制作项目而不是重新加载..它只需要大约 1 秒,但我希望 intellij 在检测到更改时自动重新制作我的文件。

标签: spring spring-mvc tomcat thymeleaf


【解决方案1】:

你应该可以通过将 spring-boot-devtools 包导入你的 pom 来使用 spring boot 和 spring-loaded。

它在 Spring Boot 手册中的热交换下记录并且非常有效

【讨论】:

  • 我导入了 org.springframework.bootspring-boot-devtools 但刷新后我还是看不到变化
  • 你在做什么改变 - 添加方法时它可能不起作用(在热交换框架上很常见),但百里香改变应该没问题?您是否检查过 spring boot 文档,因为它有一个关于配置的部分
  • 谢谢,我只需要进行“重制”,这比重新加载要快得多,现在它可以工作了。但我觉得我只是用另一个问题替换了一个问题,有没有办法自动重制每个问题什么时候有变化?
  • 还有另一个项目 - 弹簧加载,可能值得一看。虽然 Spring 目前正在推动开发工具 - 但我在加载弹簧时取得了良好的效果
【解决方案2】:

如上所述,spring-boot-devtools 是一个不错的选择,但我目前在 Intellij Idea 上使用的是 JRebel 插件 (https://my.jrebel.com/) 和 spring-boot-devtools,因此 Thymeleaf 模板得到更新,但重启选项已停用

spring:
  profiles: development
  devtools:
    restart:
      enabled: false
  thymeleaf:
    mode: HTML
    cache: false

【讨论】:

  • 插件不花钱,注册账号即可。如果您登录 my.jrebel.com 并将您的社交网络链接到它,它是免费的。
【解决方案3】:

问题是您可能使用了您部署的一个 jar/war。解决方案可能是有一个模块化的项目。此外,如果您使用 IntelliJ,您可以检查什么是热插拔。它可以在您处理主题时更新文件,而无需在每次更改时重新构建整个项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    相关资源
    最近更新 更多