Spring Boot-------热部署

热部署


热部署重要的是:添加一个jar包

第一步:在我们项目中的pom.xml文件中添加spring-boot-devtools这个jar包,Maven会帮我们自动下载的

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional><!--项目不支持传递,子项目不支持热部署-->
            <scope>true</scope><!--必须添加,否则无法生效-->
            <version>1.5.6.RELEASE</version>
        </dependency>

在pom.xml下面添加中间那项配置configuration

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork><!--还需要添加此配置-->
                </configuration>
            </plugin>
        </plugins>
    </build>

再给讲解一些热部署的这个工具的作用机制:(网上看到的感觉说的很在理)

devtools:是boot的一个热部署工具,当我们修改了classpath下的文件(包括类文件、属性文件、页面等)时,会重新启动应用(由于其采用的双类加载器机制,这个启动会非常快,如果发现这个启动比较慢,可以选择使用jrebel)

  • 双类加载器机制:boot使用了两个类加载器来实现重启(restart)机制:base类加载器(简称bc)+restart类加载器(简称rc)
    • bc:用于加载不会改变的jar(eg.第三方依赖的jar)
    • rc:用于加载我们正在开发的jar(eg.整个项目里我们自己编写的类)。当应用重启后,原先的rc被丢掉、重新new一个rc来加载这些修改过的东西,而bc却不需要动一下。这就是devtools重启速度快的原因。

第二步:要在IDEA中设置一些属性

    这个是实现项目的自动编译

接下来按快捷键alt+shift+ctrl+/ 出现选择第一个registry,之后在里面找到下图中的这个running选择打勾

 

在你的这个下选择Edit congfiguration

你的左侧没有Maven的话,就选择+号,添加Maven

  在command line:写spring-boot:run

  Name:是取个名字你认识就可以

就这样热部署完毕

用你的spring-boot:run重新启动一下项目,修改一下你你的Controller中的方法的一些代码,看看你的控制台是否变化,就可以看出来你是否有部署好你的热部署

在你的浏览器上试试

 

       【版本声明】本文为博主原创文章,转载请注明出处

posted @ 2017-09-12 20:56  坚持到底gl  阅读(914)  评论(0编辑  收藏  举报