springbootSpring-BootJava学习笔记

spring boot Jrebel实现完美热部署

2017-01-11  本文已影响5363人  疯狂的冰块

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

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

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

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

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

configurations {   
     provided
}

引入依赖:

providedCompile("org.springframework.boot:spring-boot-starter-tomcat")
 <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);
    }
}
Paste_Image.png 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热部署

上一篇 下一篇

猜你喜欢

热点阅读