美文网首页
springboot的3种常用热部署方式

springboot的3种常用热部署方式

作者: 我要进大厂 | 来源:发表于2020-10-11 16:14 被阅读0次

    SpringBoot热部署方式常用有三种

    1:spring-boot-devtools 
    2:Spring Loaded 
    3:Jrebel 
    

    SpringBoot 1.3后才拥有SpringBoot devtools热部署

    (前期设置) 统一开启相应的配置

    1. 需要开启自动编译功能


      自动编译功能
    2. 然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷键) 选择"Registry" 然后勾选 compiler.automake.allow.when.app.running


    1.spring-boot-devtools

    依赖spring-boot-devtools实现,将以下代码放到dependencies中:

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

    依赖完,直接运行ApplicationBoot就行了,如图:

    image

    因本人项目springboot版本过低,导致spring-boot-devtools无法正常使用。无奈只能看其他的热部署

    springloaded

    1.第一种 通过springboot:run的方式(不推荐)

    <build>
            <plugins>
                <plugin>
                    <!-- springBoot编译插件-->
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <dependencies>
                        <!-- spring热部署 -->
                        <!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 -->
                        <dependency>
                            <groupId>org.springframework</groupId>
                            <artifactId>springloaded</artifactId>
                            <version>1.2.8.RELEASE</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    
    
    springboot:run image.png

    需要单独使用maven的命令去运行,脱离了sprigboot的run dashboard,繁琐。

    第二种 直接使用javaagent

    跟第一种采用的同样方式,不过需要将spring-loaded下载下来,可以通过配置vm,直接用run启动服务就可以了。

    因springloaded1.2.9版本暂无法通过maven中央库下载,可直接通过下面链接下载到本地。
    springloaded-1.2.9.BUILD-20200902.195913-10.jar

    将下面这局代码放到VM arguments中,如图:

    -javaagent:D:\maven_jar\springloaded-1.2.8.RELEASE.jar -noverify
    
    # 说明:-javaagent:springloaded-xxx.jar的路径 -noverify
    
    直接用javaagent

    然后直接RUN启动就行了!

    附属说明:springloaded1.2.6版本可能会出现以下问题 https://github.com/spring-projects/spring-loaded/issues/165 所以不建议使用1.2.6版本

    java.lang.IllegalStateException: The type registry TypeRegistry(id=1252261311,loader=sun.misc.Launcher$AppClassLoader) does not know about t
    

    3. 使用Jrebel (好用、收费,需要破解版)

    开发工具idea中使用JRebel and 插件

    1、点击File -> Settings -> Plugins,如下图:搜索JRebel安装

    image.png

    破解见:https://www.cnblogs.com/flyrock/archive/2019/09/23/11574617.html

    image

    点击Change license,进行已激活。激活成功界面

    image

    激活后一定要手动切换到离线模式,可离线180天,可随时重新点下“Renew Offline Seat”刷新激活周期,180天后激活状态会重新刷新 。

    image
    1. 选择开启各个模块热部署配置,程序会自动添加rebel.xml
    image

    3、重启idea,右上角即出现快捷按钮,分别是run、debug模式

    image

    或者右键springboot的启动类:

    image

    又或者使用spring的运行面板:

    image

    在服务启动后,如增加或修改代码,按Ctrl+shift+F9重新编译,改动就可直接生效了.

    参考:
    https://www.cnblogs.com/leeego-123/p/10538460.html
    https://www.jb51.net/article/174685.htm

    相关文章

      网友评论

          本文标题:springboot的3种常用热部署方式

          本文链接:https://www.haomeiwen.com/subject/xpeepktx.html