美文网首页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热部署

相关文章

  • java学习笔记汇总

    1.spring boot实现热部署方式一 jrebel 只要点击resources右键最下位,选择Jrebel-...

  • spring boot Jrebel实现完美热部署

    笔者一开始使用Springloaded,发现配置多,比较难用。 后来发现用devtools可以更方便的解决这个问题...

  • 热部署应用

    Spring boot 采用devtools实现热部署 什么是热部署? 认识spring-boot-devtool...

  • 资料搜集

    文章 Spring Boot干货系列:(十)开发常用的热部署方式汇总JRebel非常6,重载很好用,可以节省开发时...

  • idea maven 配置spring boot dev-too

    Spring boot如何进行热部署呢?下面详细介绍:首先引入依赖 并且添加如下插件。 你可能使用过 JRebel...

  • Spring Boot-热部署

    零、本文纲要 一、Spring Boot热部署快速上手 二、Spring Boot自动启动热部署 三、Spring...

  • Spring boot 采用devtools实现热部署

    Spring boot 采用devtools实现热部署 什么是热部署? 热部署,就是在应用正在运行的时候升级软件,...

  • 2019-04-01

    Spring Boot 采用devtools实现热部署:什么是热部署? 热部署,就是在应用正在运行的时候升级软件,...

  • Spring Boot部署

    热部署 pom.xml文件中添加spring-boot-devtools依赖即可实现页面和代码的热部署。 常规部署...

  • springboot 热部署

    springboot热部署通过Spring Loaded和spring-boot-devtools两种方式进行实现...

网友评论

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

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

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