likes
comments
collection
share

IDEA JAVA 项目热加载

作者站长头像
站长
· 阅读数 36

使用 IDEA 开发 JAVA 项目的过程中,我们完成一个功能的编写后,需要调试,往往需要重新启动项目,那么,我们有什么方法跳过重新启动呢?

那就得说到热加载~

本文演示的环境如下:

  • IntelliJ IDEA 2021.2.2 (Ultimate Edition)
  • macOS Monterey - Apple M1
  • Java version - 17.0.7
  • Spring Boot - 3.1.0
  • 谷歌浏览器 - 版本 113.0.5672.126(正式版本) (arm64)

本文我们将通过 devtools 来实现热加载的功能~

添加 devtools

我们新建一个名为 jimmy 的案例项目,然后在 pom.xml 中添加依赖:

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

IDEA JAVA 项目热加载

如果不生效,请重启 IDEA

验证

我们在页面中添加 controller 验证下:

// HelloController.java
package com.example.jimmy;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(String name) {
        return "Hello Jimmy 01!";
    }
}

我们运行下项目,在谷歌浏览器上访问 http://localhost:8080/hello 地址,则有页面:

IDEA JAVA 项目热加载

我们更改上面的代码返回的内容:

Hello Jimmy 01! -> Hello Jimmy 02!不用保存,直接点击右上角的构建(锤子图标)

IDEA JAVA 项目热加载

然后刷新刚才的地址,页面的内容会更新:

IDEA JAVA 项目热加载

自动刷新浏览器 - 非 IDEA 中配置

前端开发的过程中,现成的库(angular, react, vue)脚手架都帮我们设定好了热加载,在保存编写的代码时候,页面会自动刷新内容。

那么,我们在本例中,能否实现更改了 controller 的返回信息,并点击 build(锤子图标)后,页面能够自动刷新呢?

答案是可以的。我们在谷歌浏览器上安装插件 - LiveReload 并启用。

IDEA JAVA 项目热加载

那么我们在 IDEA 上更改了内容,重新 build 后,不用刷新浏览器,页面内容会自动更新。

⚠️ 使用 LiveReload 插件,你不能在浏览器的访客功能下使用。因为该功能会禁用插件

参考

IDEA JAVA 项目热加载

相关阅读

转载自:https://juejin.cn/post/7240838046790254650
评论
请登录