idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署
前言
最近在开发的时候,每次改动代码都需要启动项目,因为有的时候改动的服务比较多,所以重启的次数也就比较多了,想着每次重启等待也挺麻烦的,就打算使用DevTools工具实现项目的热部署
热部署是什么
大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载。
而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前
类加载机制
Java中的类经过编译器可以把代码编译为存储字节码的Class文件,该Class文件存储了各种信息,最终要加载到虚拟机中运行使用。类加载机制(摘自《深入理解 Java 虚拟机》)虚拟机把描述类的数据从Class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。
添加依赖
org.springframework.bootspring-boot-devtoolstrue
DevTools的配置
#热部署生效spring.devtools.restart.enabled: true#设置重启的目录spring.devtools.restart.additional-paths: src/main/java#classpath目录下的WEB-INF文件夹内容修改不重启spring.devtools.restart.exclude: WEB-INF/**
IDEA需要的配置
当我们修改了Java类后,IDEA默认是不自动编译的,而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用,所以需要设置IDEA的自动编译:
- File-Settings-Compiler-Build Project automatically
![](/assets/blank.gif)
- ctrl + shift + alt + /,选择Registry,勾上 compiler.automake.allow.when.app.running
![](/assets/blank.gif)
idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署相关推荐
- sts4创建spring项目_使用STS4新建springboot项目
1.配置maven,自定义setting文件和仓库,一定要用阿里云镜像地址下载依赖,官方太坑了,整了半天都没弄好,原来是下载太慢文件损坏 alimaven central aliyun maven h ...
- springBoot修改代码不需要重启-热部署
springboot每次修改代码都需要重启项目,进行热部署后就不需要每次修改代码都要重启项目了 热部署: 需要在pom.xml里进行配置 <dependency> <groupId& ...
- Node.js笔记 - 修改文件后自动重启node服务
每次修改代码后都要手动重启node服务,虽然不是复杂的事,但是每次都要这么搞一次颇为麻烦. 所以nodemon登场了! nodemon会监测你已运行程序中的文件和目录,一旦被修改,它会自动重启node ...
- 解决 :IDEA 修改代码后 Local Changes 中没有提示待提交文件,代码自动提交了
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 通常修改代码后 会在 Local Changes 中提示修改过的文件,如下: 2. 我的情况是 ...
- 64 位操作系统下, Revit 如何修改代码后再次快速调试新代码
Visual Studio (简称VS)提供了暂时中断调试,然后修改代码,接着更新代码就可以实现继续调试运行的功能.但是这个再调试过程中暂时中断修改代码的功能在64位操作系统下无法实现. 这个问题导致 ...
- 【MySQL】修改配置后,重启MySQL报错[ERROR] The server quit without updating PID file
问题: 在没有修改配置时,MySQL启动正常: 错1:修改配置后MySQL启动不了,报错: [root@localhost mysql]# service mysql restart Starting ...
- SourceInsight 修改代码后无法保存,显示“xxx is busy or opened by another process”
SourceInsight 修改代码后无法保存,显示"xxx is busy or opened by another process" 是文件夹权限的问题,更新一下权限就行 ch ...
- git从gitlab下载代码,修改代码后上传代码到gitlab新建立的分支上
git从gitlab下载代码,修改代码后上传代码到gitlab新建立的分支上 一.git clone下载代码 二.git pull确认更新到最新版本 三.查看仓库文件状态 四.查看远程地址 五.删除g ...
- 用idea建立jsp项目_用idea创建maven项目,配置tomcat详解
用idea创建maven项目,配置tomcat详解,电脑上得有jdk1.7,或者1.8,然后就是maven3.x吧,再有就是tomcat7以上 下面就直接开始看图啦: 这个我刚刚开始没注意细看,原来w ...
最新文章
- Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图
- 路由器配置与管理完全手册(Cisco篇)学习感想
- Oracle Flashback Database and Restore Points 说明
- js mysql java_Java、mysql、html、css、js 注释大小写
- .net 事件委托 java_仿net事件委托的java事件模型实现(转csdn)
- Spring学习笔记(三)
- Java描述设计模式(14):解释器模式
- 做web前端的小伙伴注意了,未来这些发展方向可以试试!
- VMware虚拟机设置(vmtools分辨率)
- 汪文君PowerMock实战视频
- 开机脚本之——小键盘代替鼠标热键
- 企业级用户画像: 价格敏感度模型-PSM
- TM4C129建立FREERTOS工程
- 逆向经验 + 逆向工具
- 人脸、指纹、虹膜、行为,你需要的人工智能生物识别AI数据集全在这里
- 跨平台应用开发进阶(十二) :uni-app 实现应用桌面图标角标提示及应用跳转
- Ubuntu系统下安装ZEC币服务
- 数独(日语:数独/すうどく sūdoku)
- 计算机视觉-CS231n-Lecture 1
- 背单词软件单项选择算法