springboot实现热部署-idea

spring boot实现热部署


说明:使用spring boot开发web项目,一旦修改了界面,即使是很小的修改,也需要重新启动应用,所以spring给我们开发者提供了一个模块(spring-boot-devtools)来支持热部署,使我们在改变代码时无需手动重启应用

原理
springboot 重启是 reload 重启,通过监控 classpath 的变化,如果 classpath 中的文件发生变化,即触发重启,springboot 通过两个 classpath 来完成 reload,一个 basic classloader 中加载不变的类(第三方Jar包),一个 resatrt classloader 加载 classpath 中的类,重启的时候,restart classloader 中的类丢弃重新加载

引入依赖

    <!--实现热部署的核心依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

    <!--web开发的核心依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--实现test测试的核心依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--底下三行必须加上,否则热部署不起作用-->
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>

使用
当添加以上资源后,idea默认是不会自动编译的,需要我们自己手动编译,快捷键 ctrl+F9,可以重新编译

猜你喜欢

转载自blog.csdn.net/tuckEnough/article/details/82021459