IntelliJ IDEA弹簧启动热重载手动保存?

时间:2017-03-30 22:52:57

标签: java spring intellij-idea spring-boot

我的目标是:

  1. 在IntelliJ IDEA中禁用弹出启动项目的自动保存

  2. 在手动保存文件时,总是热重新加载项目

  3. 在我看来,同时实现这两个目标是不可能的。

    我可以通过修改这些设置来禁用IntelliJ IDEA中的自动保存:

    构建,执行,部署 - > 编译器取消选中自动构建项目

    另外我认为太需要的是修改这些选项:

    外观&行为 - > 系统设置取消选中同步下的两个保存文件(停用帧并自动保存文件)

    我可以在Mkyong的帮助下启用热重新加载:Mkyong-help 正如您从链接中看到的,它需要自动设置“构建项目”。上。如果我执行这两个步骤,那么应用程序将始终保存在编辑上,并且它将始终热重新加载应用程序。

    这太令人沮丧了,我认为IntelliJ IDEA是一个很好的现代IDE,这些工业核心功能如热重载处理容易吗?

    问题是,我真的不想在我对文件做出的每一次更改时都热重新加载我的应用程序!因为那时它将不断热重新加载,这将打破应用大部分时间。只是如此不必要和浪费资源。我总是在手动保存文件时热重新加载,这是许多其他编辑器的标准。必须有一个解决这个问题的方法,因为人们需要合理的热重载来开发它们。

2 个答案:

答案 0 :(得分:9)

据我所知,您的问题是您希望Spring服务器在您进行更改时自动重新加载,然后手动保存它们。对?如果是这种情况,请按照我的步骤进行操作,希望您会得到满足的想法。

1。包括spring-boot-devtools依赖

的Maven

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

摇篮

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}

2。在编译器首选项中启用“自动生成项目”以使自动重启起作用。

enter image description here

3。在IntelliJ中启用compiler.automake.allow.when.app.running注册表设置。您可以使用快捷方式Shift+Command+A访问IntelliJ中的注册表,然后搜索注册表。

enter image description here

当您手动保存更改时,第3步将自动构建项目(make project)。

=============================================== ========================= 一旦通过IDE手动保存更改,这些步骤将强制Spring服务器重新启动。但是,即使重新启动服务器,每次进行更改时都需要刷新浏览器。要强制您的浏览器自动刷新,您需要在浏览器中安装名为Live Reload的扩展程序。请查看此链接http://livereload.com/extensions/。该链接将向您显示如何安装此扩展程序取决于您的浏览器。

答案 1 :(得分:0)

这是一个简单的工作流程,它在 IDEA Ultimate Edition 中对我来说效果很好,并且在代码热交换时不会重新启动部分应用程序

1.安装 Spring Boot 开发者工具

2.创建适当的 Spring Boot 运行配置

这里的关键步骤是将 On 'Update' action 设置为 Hot swap classes and update trigger file if failed Settings 这是工具提示对各种选项的解释。仅指定 Update classes or resources 会起作用,但会重新加载应用程序的某些部分,但比从头启动应用程序要快得多。请参阅 Restart vs Reload section of the documentation for an explanation
Tooltip

3.在调试模式下运行您的 Spring Boot 应用程序 Shift + F9

4.更改一些java文件或静态内容,然后按CTRL + F10

它将更新您刚刚更改的类和资源。为了获得良好的效果,请禁用浏览器的缓存以避免看到旧版本的静态资源。

5.编辑模板

如果您使用模板引擎,文档提供了有关 how to reload them without restarting the container

的说明

6. (可选)使用 LiveReload 触发浏览器刷新

Spring Boot 开发者工具 contain a LiveReload server 可帮助您在内容发生变化时触发浏览器重新加载。