IntelliJ IDEA 社区版和 Spring 使用 Spring DevTools 缓慢重新加载

IntelliJ IDEA Community Edition and Spring slow reload with Spring DevTools

我知道 IDEA CE 不支持 Spring,但我仍然可以在自动完成的良好支持下进行开发,这对我来说已经足够了。

我遇到的问题是 IDE 需要 5 到 7 秒才能使用我在按 Ctrl + S 后所做的更改重新加载服务器。因此,我搜索了更多可以修改的选项,我尝试了这些:

但是并没有解决问题。

虽然我知道我可以使用 VSCode,因为 Java 支持非常好并且 Spring 重新加载非常快,但对于 Kotlin 支持,没有足够好的扩展。所以我想找到一个修复程序来减少服务器重启的延迟,如果可能的话。好像是故意逼你买专业版的

您不需要使用 IntelliJ 的自动编译或 DevTools IDEA Community 或 Ultimate 以在调试模式下热交换 类。如果要在 Ctrl+S 上编译,请将此快捷方式分配给 Build | Build Project 操作(设置(macOS 上的首选项)|键盘映射|主菜单|构建|构建项目,右键单击,Add Keyboard Shortcut)。

IDE 将热交换已更改的 类,更改将在不到一秒的时间内在浏览器中可用:

示例项目:boot-hotswap-demo.zip.

步骤:

  1. 点击调试按钮启动应用程序
  2. 在网络浏览器中打开 http://localhost:8080/
  3. 观察Greetings from Spring Boot!!!输出
  4. HelloController.java 中的字符串更改为其他内容
  5. 构建 |构建项目(或 Ctrl+S 如果您将其分配给此操作)
  6. 在浏览器中重新加载页面,观察不到一秒的变化,IDE 显示有关重新加载的通知 类。

如果你想依赖 DevTools,你也可以在 pom.xml 中取消注释 spring-boot-devtools 依赖项,它会在更改时触发服务器重启。有点慢,但肯定不是你描述的5-7秒。

我们在项目中使用了 2 个注解处理器: 注释处理器“org.springframework.boot:spring-boot-configuration-processor” 和 annotationProcessor “org.projectlombok:lombok”.

龙目岛工作正常。但是,如果 spring-boot-configuration-processor 处于活动状态 - 热插拔总是重新加载所有 类,这对我的项目来说需要超过一分钟,完全重启应用程序要快得多。

当我需要热插拔时,我会在启动前评论那个处理器。