zoukankan      html  css  js  c++  java
  • idea内springboot项目设置热部署

    一、需求分析:

      编写idea中编写项目时,经常性改某几行代码就需要重新启动项目,比较浪费时间,借助idea的热部署可以实现代码的热部署

    二、实现经过

      这边可以借助spring-boot-devtools模块进行配置,devtools会检测代码,并进行重新发布。devtools的实现原理是通过使用两个

      ClassLoader,一个用来加载一些第三方的代码(如引入的一些jar包)。另一个ClassCLoud会加载一些会更改的代码,可以称

      为restart ClassLoader。在有代码进行更改的时候,原来的restart ClassLoader会被清理,重新创建一个restart ClassLoader,

      由于需要加载的类较少,所以通过devtools的重启会比idea手动启动要快。

      

      配置:

      需要对pom.xml文件中添加如下依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 -->
         <scope>true</scope>
    </dependency>
       <build>
            <plugins>
                <!--springloaded 热部署配置-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <fork>true</fork><!--fork :  如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
                    </configuration>
                </plugin>
            </plugins>
        </build>

      然后需要对idea进行配置才能真正实现,通过快捷键Ctrl+Alt+S打开设置

    idea配置:

      当我们修改了Java类后,IDEA默认是不自动编译的,而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用,所以需

      要设置IDEA的自动编译:

      (1)File-Settings-Compiler-Build Project automatically

        

        如果是最新版本的idea则在如下的配置中

        

      然后快捷键Ctrl+Alt+Shift+/打开设置面板选择Registry,找到key值为compiler.automake.allow.when.app.running,然后选择上关闭,重启idea

      就可以了

    三、其他方式

      实际上通过idea自带的检查更新也可以使用,且设置简单,只需要打开springboot项目运行配置里面,设置为检测更新即可

      

  • 相关阅读:
    Nginx 教程(安装在Windows)
    APS.Net Core 启用跨域请求
    C# 监听数据库表的变化(SqlDependency)
    C# WebSocket 及时通信协议
    Sqlserve 常用语句
    C# Socke t网络编程
    什么是分布式缓存
    好诗!!!
    ASP.NET MVC中获取URL地址参数的两种写法
    jQueryEasyUI Messager基本使用
  • 原文地址:https://www.cnblogs.com/G-yong/p/10337896.html
Copyright © 2011-2022 走看看