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
- ctrl + shift + alt + /,选择Registry,勾上 compiler.automake.allow.when.app.running
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 ...
最新文章
- 显著性图matlab,cvpr14_saliency_code 2014上的关于图像显著性区域的检测matlab代码。 271万源代码下载- www.pudn.com...
- 为预测用户出行需求,ofo开始使用AI实现智能调度
- jsp动作之 getProperty
- android launcher 相关
- MFC启动和关闭线程
- linux-2.6.38 input子系统(用输入子系统实现按键操作)
- sim7600ce 拨号上网测试_树莓派系列教程:通过SIM7600 4G模块NDIS拨号
- Windows 2000服务器安全配置精华技巧
- HTML和CSS 基本要点必看
- 设备激活错误。物理文件名 'D:\LOG\ShoppingDB_Log.ldf' 可能有误。
- php语言输出九九乘法表_PHP 输出九九乘法表
- textarea还剩余字数统计
- 摘录一些介绍Linux DKMS的博客文章
- zabbix client安装配置执行
- ubuntu修改文件权限
- 【历史上的今天】6 月 25 日:笔记本之父诞生;Windows 98 发布;通用产品代码首次商用
- 代码安全之代码混淆及加固(Android)
- matlab 设计 希尔伯特变换器,基于Matlab的FIR型希尔伯特变换器设计
- 讯飞离线语音命令词+TTS离线发音,实现命令词交互(windows dll for unity插件)
- thon中的全局变量
热门文章
- 【剑指offer】面试题33:二叉搜索树的后序遍历序列(Java)
- c++矩阵连乘的动态规划算法并输出_算法面试必修课,动态规划基础题型归纳(三)
- java bean set_JavaBean自动生成get和set方法
- python将数据集分成训练样本和类标签
- PyTorch框架学习十三——优化器
- 吴恩达作业5:正则化和dropout
- kudu参数优化设置,让集群飞起来~
- 安装 Python 包时解决 Microsoft visual c++ 14.0 is required 问题
- DOS 命令、必会的 10个 DOS 命令
- Spring Data JPA 从入门到精通~@NamedQueries预定义查询