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.
步骤:
- 点击调试按钮启动应用程序
- 在网络浏览器中打开 http://localhost:8080/
- 观察
Greetings from Spring Boot!!!
输出
- 将
HelloController.java
中的字符串更改为其他内容
- 构建 |构建项目(或 Ctrl+S 如果您将其分配给此操作)
- 在浏览器中重新加载页面,观察不到一秒的变化,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 处于活动状态 - 热插拔总是重新加载所有 类,这对我的项目来说需要超过一分钟,完全重启应用程序要快得多。
当我需要热插拔时,我会在启动前评论那个处理器。
我知道 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.
步骤:
- 点击调试按钮启动应用程序
- 在网络浏览器中打开 http://localhost:8080/
- 观察
Greetings from Spring Boot!!!
输出 - 将
HelloController.java
中的字符串更改为其他内容 - 构建 |构建项目(或 Ctrl+S 如果您将其分配给此操作)
- 在浏览器中重新加载页面,观察不到一秒的变化,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 处于活动状态 - 热插拔总是重新加载所有 类,这对我的项目来说需要超过一分钟,完全重启应用程序要快得多。
当我需要热插拔时,我会在启动前评论那个处理器。