美文网首页springbootSpring-BootJava学习笔记
spring boot Jrebel实现完美热部署

spring boot Jrebel实现完美热部署

作者: 疯狂的冰块 | 来源:发表于2017-01-11 07:00 被阅读5363次

    笔者一开始使用Springloaded,发现配置多,比较难用。

    后来发现用devtools可以更方便的解决这个问题:
    如果需要的话参考我的另一篇博文:http://www.jianshu.com/p/14963f5fdaae

    笔者也是经过一整天的尝试才发现这个解决方案,不敢私藏,遂分享给大家,欢迎大神指正!

    完成热部署,总共需要两步。

    第一步:生成可以在tomcat里运行的war包:

    • 如果使用的是gradle在build.gradle里添加:
    configurations {   
         provided
    }
    

    引入依赖:

    providedCompile("org.springframework.boot:spring-boot-starter-tomcat")
    
    • 如果使用的是maven
      引入依赖:
     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <version>1.5.1.RELEASE</version>
                <scope>provided</scope>
    </dependency>
    

    注意这里的 <scope>provided</scope>不能省略,具体原因请查看查这里

    不论是使用maven,还是gradle
    Application.java修改如下:

    @SpringBootApplication
    @ComponentScan(basePackages = "me.ice")
    public class Application extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Application.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    
    • 如果使用gradle则:
      点击gradle projects面板下的Tasks-build-clean、Tasks-build-build
      至此gradle生成了也可在tomcat里运行的war包(默认build/libs文件夹下)。
      如图所示:
    Paste_Image.png
    • 如果使用maven则
      maven 点击maven projects面板下的Lifecycle-clean、Lifecycle-compile
      如图所示
    Paste_Image.png

    第二步:用jrebel完成热部署

    第一步非常重要,否则无法继续第二步。其实第一步完成后,配置jrebel热部署和在普通Spring 项目(不是Spring boot)部署步骤完全一致,不懂的话,google,baidu,很多资料。

    Paste_Image.png

    点击右上角+选择Tomcat Server-Local

    Paste_Image.png

    如下图,点击fix,选择exploded那个


    Paste_Image.png

    如图可以将名称改为Tomcat,也可以自定义
    然后在On ‘Update action’On frame deactivation下拉框都选择 Update classes and resources

    Paste_Image.png

    至此已经完成了Spring boot的热部署:

    下面来测试一下
    点击下图按钮开始运行项目

    Paste_Image.png

    修改后的效果,箭头指向为修改前与修改后的对比。

    Paste_Image.png Paste_Image.png

    至此大功告成!终于可以睡上一觉了。晚安吧。
    注意:
    一般Jrebel有15天免费试用期,不过Jrebel对于个人是免费的,在Google上搜索myJrebel然后注册就会送个人免费注册码,
    传送带:https://my.jrebel.com/

    参考:

    使用Spring Boot Gradle 打war包的一点心得体会

    使用devtools实现Spring boot热部署

    相关文章

      网友评论

      • 日新月异_e327:真正的热部署 修改代码 不需要重新启动容器,像spring devtools只能算自动重启
      • 0ffb1a5cac3a:这叫热部署?dao层、service层等其他层代码改了能生效?不懂就不要发出来误导别人
        fkxuexi:@剪love 你这话,貌似有些过分。题主可能没有说清楚,不过jrebel是能做到热部署的。改动代码不用重启
        疯狂的冰块:请问您对热部署如何定义?我本地验证过,在dao、service层都可以实现热部署,如果不对请检查一下配置。文中简单起见,只给出简单类做示范。
      • 叶子的翅膀:还有一步,就是要将pom.xml的packaging修改为war的形式

      本文标题:spring boot Jrebel实现完美热部署

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