热部署有三种方式:

  • 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进行安装,需要激活,具体怎么使用,请自行搜索。

【使用篇二】SpringBoot热部署(11)的更多相关文章

  1. 【SpringBoot】SpringBoot热部署和配置文件自动注入实战

    ========================3.SpringBoot热部署devtool和配置文件自动注入实战 ============================ 1.SpringBoot2 ...

  2. idea配置SpringBoot热部署之自动Build

    一.pom.xml文件导入所需依赖文件 SpringBoot热部署插件 <dependency> <groupId>org.springframework.boot</g ...

  3. SpringBoot热部署的两种方式

    SpringBoot热部署方式一共有两种,分别使用两种不同的依赖 SpringBoot 1.3后才拥有SpringBoot devtools热部署 ①:spring-boot-devtools   ② ...

  4. SpringBoot"热"部署解决方案

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 SpringBoot热部署两种方式 1.SpringLoader 插件 ​ 缺点: Java 代码做部署处理.但是对页面无能为力. 2.DevToo ...

  5. SpringBoot(六):springboot热部署

    在j2ee项目开发中,热部署插件是JRebel.JRebel的使用为开发人员带来了极大的帮助,且挺高了开发便捷.而在SpringBoot开发生态环境中,SpringBoot热部署常用插件是:sprin ...

  6. SpringBoot热部署配置(基于Maven)

    热部署的意思是只要类中的代码被修改了,就能实时生效,而不用重启项目.spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原 ...

  7. idea中设置springboot热部署

    在idea中设置springboot热部署,项目修改的时候不用手动重启应用 1,pom中添加依赖 <dependency> <groupId>org.springframewo ...

  8. Springboot 热部署中存在冲突的问题

    SpringBoot热部署有2中: 1.使用 Spring Loaded 2.使用 spring-boot-devtools 具体怎么用.自己百度! 在使用第一种时候,整合SpringBoot和通用M ...

  9. SpringBoot热部署报错(BeanCreationException: Error creating bean with name 'classPathFileSystemWatcher' d)

    springboot热部署配置方法 http://blog.csdn.net/pyfysf/article/details/78791292 异常信息如下 org.springframework.be ...

  10. springboot热部署设置

    springboot提供了热部署,所谓热部署就是当你修改了文件代码,不用重新去启动服务器,而你只要重新build一下当前项目就可以重新编译了.而这就是热部署. 其实springboot热部署就是通过一 ...

随机推荐

  1. git 入门教程之 git bash 竟然不支持 tree 命令

    开门见山 git bash 是 Windows 用户安装 git 时默认安装的命令行工具,不仅界面漂亮功能也不错,大多数情况下可以替代 Windows 原生的 cmd 命令行. 然而,git bash ...

  2. 无法用排他锁锁定该数据库,以执行该操作。 (Microsoft SQL Server,错误: 5030)

    ALTER DATABASE Test_DB modify name = Howie --更改数据库名 EXEC sp_renamedb 'Howie' , 'Howie_Wee' --更改数据库名 ...

  3. Win10中SVN图标不显示的解决

    团队协作开发,SVN是离不开的.在Win10安装的版本是TortoiseSVN-1.9.5.27581,可检出后图标未显示出来.解决方法是修改注册表: 第一步,打开注册表编辑器位置:HKEY_LOCA ...

  4. backbone 路由传参(可选)

    因为维护公司的老项目而接触到backbone.以前是只闻其名,未见其码. 因为其他项目需要跳转到本项目的某个页面,但是需要UI改变. 考虑的方法是给路由添加一个可选参数.代码如下: 正常路由: rou ...

  5. (二十八)golang--二维数组

    初始化: var array [2][3]int = [2][3]int{{0,0,0},{0,0,0}} var array [2][3]int = [...][3]int{{0,0,0},{0,0 ...

  6. LeetCode 155:最小栈 Min Stack

    LeetCode 155:最小栈 Min Stack 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- ...

  7. JeeSite | 数据权限应用

    中午吃饭时看了一下陆毅版的<三国>,刚好看的是蜀军缺粮,诸葛亮让王平去劫司马懿的粮.司马懿看蜀军用木牛流马运量很方便,就抢了蜀军的木牛流马仿制了一批,结果司马懿用它运粮时,被王平冒充司马懿 ...

  8. 阿里开源 KT Connnect,轻量级云原生测试环境治理平台来啦!

    作者| 阿里云技术专家 郑云龙(砧木) 目前越来越多的开发者开始采纳 Kubernetes 管理基础设施环境,并通过 Kubernetes 完成日常的开发,测试以及生产发布活动,为了能够有效的帮助开发 ...

  9. WPF xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

    <Button Grid.Row="1" Content="Load Data" BorderBrush="Black" Border ...

  10. js变量--全局变量和局部变量

    1.javaScript中在函数里声明的变量为局部变量,其余为全局变量. 2.javaScript没有块级元素