一、实现的方式概述

  • 使用Spring Loaded
  • 使用spring-boot-devtools

注意以下的热部署方式在IDEA是默认没有打开自动编译的,手动编译需要快捷键(Ctrl+Shift+F9),自动编译的修改配置如下:(注意刷新不要太快,会有1-2秒延迟)。

File-Settings-Compiler-Build Project automatically

二、spring-boot-devtools

在pom中直接引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
</dependency>

设置以下两项(第一项如已设置直接设置第二项)

1) “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,选中打勾 “Build project automatically” 。

2) 组合键:“Shift+Ctrl+Alt+/” ,选择 “Registry” ,选中打勾 “compiler.automake.allow.when.app.running” 。

之后直接正常run即可!

三、spring-loaded

在Plugins中添加依赖

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><dependencies><!-- spring热部署 --><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId><version>1.2.6.RELEASE</version></dependency></dependencies></plugin></plugins>
</build>

如果依赖提示not found,先在上面写让maven下载下来,再移到Plugin里面来

命令行窗口启动

找到pom.xml的路径,IDEA的话打开Pom后在标签页鼠标悬停即可看到,或者在pom上右击->file Path

在这个路径下打开cmd窗口(win下可以通过shift快速在对应路径打开),输入启动命令

mvn spring-boot:run

这样就可以在IDE里修改代码实现热加载了!

还有一种复杂的方式是通过启动参数指定jar包的位置,感觉更加复杂,暂不赘述。

四、发布spring-boot程序

1.jar形式

通过maven直接INSTALL,把项目打包并且相关的依赖也打到同一个jar里面(推荐shade插件)。

  

启动:

java -jar Demo-0.0.1-SNAPSHOT.jar

2.war形式

第一步:右键pom.xml点击Run as - > Maven clean,将原有的jar包或war包清除,然后在pom.xml中packing节点值修改为war,如下面加粗部分:

<groupId>com.example</groupId><artifactId>Demo</artifactId><version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

第二步:在pom.xml中的dependencies节点里添加tomcat的如下依赖:

<dependency>       <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

第四步:pom.xml修改保存以后,项目会有红色叉出现,此时只要右键项目名,点击Maven - > Update Project,更新后红色叉叉即可消失。

第五步:打开启动类文件,如下添加橙色部分代码:

package com.wzr;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(DemoApplication.class);}public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

第六步:右键pom.xml,点击Run as - > Maven install,然后刷新target就能看见已成功将项目打成war包,将war复制粘贴到Tomcat的webapps文件夹下,启动Tomcat即可。

springboot热部署与发布相关推荐

  1. 常用注解[spring 的 java 配置] ||springboot 热部署

    常用注解[spring 的 java 配置] 回顾学过的 spring 的注解 @Controller @RestController @Service @Repository @Component ...

  2. SpringBoot 热部署

    SpringBoot 热部署 最近在讲springcloud微服务,中间使用到springboot开发代码时,经常因为一点小的改动就需要重启,虽然重启也很快.于是就开始折腾热部署,下面记录如下: 一. ...

  3. SpringBoot热部署加持

    概述 进行SpringBoot的Web开发过程中,我们很多时候经常需要重启Web服务器才能保证修改的 源代码文件.或者一些诸如xml的配置文件.以及一些静态文件生效,这样耗时又低效.所谓的热部署指的是 ...

  4. 超详细springboot热部署

    超详细springboot热部署 ①修改依赖 <!--热部署--> <dependency><groupId>org.springframework.boot< ...

  5. SpringBoot热部署环境搭建和原理分析

    SpringBoot热部署环境搭建 插件会监控 classpath的资源变化 对类加载采用了两种类加载器(只重启开发人员编写的代码部分) 一. 现象 开发项目过程中,修改了某些代码后需要本地验证时,需 ...

  6. idea中配置Springboot热部署

    idea中配置Springboot热部署 1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency>< ...

  7. Springboot 热部署----热部署插件的使用

    热部署有什么用?什么是热部署? 在实际开发中,我们修改某些代码逻辑功能或页面后都需要重启应用,这无形中降低了开发效率.因此,热部署出来了. 热部署就是指当我们修改代码后,服务能自动重启加载新修改的内容 ...

  8. SpringBoot热部署--bunny0728

    bunny0728–SpringBoot热部署 第一步: <!--热部署配置--> <dependency> <groupId>org.springframewor ...

  9. springboot热部署该怎么实现?springboot热部署实现方式

    Spring家族博大精深,我之前讲过该如何搭建一个简单的springboot项目,这次我们就来深入探讨一下springboot,比如,你们知道springboot该如何搭建热部署吗?下面就来为大家讲解 ...

最新文章

  1. 2021年春季学期-信号与系统-第八次作业参考答案-第五小题
  2. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
  3. oracle建立dblink
  4. jQuery经典面试题及答案精选[转]
  5. 走进Java中的持有对象(容器类)之一 容器分类
  6. 十几行程序代码搞定 Master-Detail GridView(内含子 GridView)
  7. 虚拟机(基于栈还是基于寄存器)之谈
  8. psychopy 音频时长代码_PsychoPy入门_03_视频和音频的呈现
  9. 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)
  10. java调用 restapi 乱码_Java HttpURLConnection模拟请求Rest接口解决中文乱码问题
  11. Spring中部署Activiti流程定义的三种姿势
  12. 查询公司资产数据库中的主机是否在zabbix的监控中
  13. prml线性模型小结
  14. 使用$.getJSON解决ajax跨域访问 JQuery 的跨域方法(服务器端为wordpress程序)
  15. Java视频在线观看网址
  16. 科学计算机调成了fx,科学计算器怎么编程
  17. 重拾C语言-摄氏度与华氏度相互转换
  18. python 图表制作及功能化_Python实现从excel读取数据绘制成精美图像
  19. Entry name *.xml collided终极解决方案
  20. 介值定理究竟在讲什么?

热门文章

  1. 图--广度优先遍历/深度优先遍历(c语言实现)
  2. 控股天弘基金 阿里无银行之名行银行之实
  3. Oracle exp/imp导出导入命令及数据库备份
  4. DataSet数据筛选和排序
  5. KINGBASE人大金仓数据库安装配置手册
  6. 监控Linux系统状态的命令
  7. Django中model新建数据表操作后admin页面不更新问题
  8. 关于PyCharm卡顿的问题
  9. <2012 12 17> “Kernel panic - not syncing” 问题的解决
  10. msf出现Database not connected等问题【已解决】