• SpringBoot热部署——Eclipse


    热部署有三种方式:

    • SpringLoader 插件
    • DevTools 工具
    • 安装JRebel插件

    注意:热部署的功能依赖于工具的自动编译,Eclipse-->Build Automatically必须勾选。

    一、SpringLoader

    1. 以 maven 插件方式使用 SpringLoader

    (1) 修改pom.xml

    <build>
        <plugins>
            <!-- springloader 插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    (2) 创建测试Controller

    @RestController
    public class TestController {
        
        @RequestMapping("/show")
        public Object showPage(){
            System.out.println("show page.....");
            ModelAndView view = new ModelAndView();
            view.setViewName("index");
            return view;
        }
    }

    (3) 编写测试的jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>测试页面</title>
    </head>
    <body>
        <h3>hello world</h3>
    </body>
    </html>

    (4) 测试

    以Maven命令启动。

    右键项目-->Debug As-->Maven Build...(第二个),输入spring-boot:run

    通过修改Controller的输出信息和jsp页面的输出信息,可以得出SpringLoader只对Java代码有效,对页面没有效果

    注:Springloader 热部署程序是在系统后台以进程的形式来运行,需要手动关闭该进程,可能会出现端口占用的问题。

    2. 在项目中直接使用 jar 包的方式使用 SpringLoader

    (1) 下载SpringLoader的jar包添加到类路径下

    (2)  右键-->Debug As -->Debug Configurations...

    二、DevTools 工具

    DevTools的使用比较简单,只需要修改项目的pom文件添加devtools 的依赖即可。

    <!-- DevTools 的坐标 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    SpringLoader 与 DevTools 的区别: 
    • SpringLoader 在部署项目时使用的是热部署的方式。 
    • DevTools 在部署项目时使用的是重新部署的方式。

    三、安装JRebel插件

    有了DevTools,为什么还要使用JRebel插件呢?

    • 额外引入的依赖实际上生产环境并不需要,开发者引入后容易误提交到线上。
    • springboot-devtools方式的热部署在功能上有限制。如在方法内的修改可以实现热部署,但是新增的方法或者修改方法参数之后热部署是不生效的。
    • 相对于JRebel,springboot-devtools方式热部署的速度可能有点慢

    在Eclipse Marketplace...中搜索JRebel进行安装,需要激活,具体怎么使用,请自行搜索。

  • 相关阅读:
    数据结构——单链表(singly linked list)
    Java——判断回文
    C——swap
    Java动态数组
    mui框架下监听返回按钮
    Ubuntu 18.04版本下安装网易云音乐
    Linux安装Broadcom无线驱动
    EFI环境下的Ubuntu&Win10双系统安装
    Leaflet中添加的不同图层样式图标
    数据插入数据库时,提示表名不存在
  • 原文地址:https://www.cnblogs.com/myitnews/p/11523854.html
Copyright © 2020-2023  润新知