热加载

热加载可以使代码修改后无须重启服务器,就可以加载更改的代码。(其实分java和非java代码,本处可以让java代码立即生效且不重启服务)

第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源

菜单Run -> EditConfiguration , 然后配置指定服务器下,右侧server标签下on frame deactivation = Update classes and resource。

优点:简单

缺点:基于JVM提供的热加载仅支持方法块内代码修改,只有debug模式下,并且是在idea失去焦点时才会出发热加载

热部署

热部署修改代码后,需要重启服务器,才能加载更改的java代码。(本处,可以让java代码和非java代码,都生效,但必须重启服务)

第2种:使用springloaded.jar包

a. 下载jar包,github:https://github.com/spring-projects/spring-loaded

b. 启动应用时添加VM启动参数:-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar -noverify

优点:对Spring系列框架支持好(不含Spring boot), 支持 成员级别的修改(增删改方法、字段、注解),支持对枚举值集。使用这种形式加载springloaded经过测试,延迟不算高, java代码修改后控制台看不到重启信息却也能生效.

缺点:与优点相对

更简单的方式

maven插件中使用pom.xml配置springloaded插件的依赖

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

然后在终端使用命令行 mvn spring-boot:run启动,而通过Application.run方式启动的会无效,因为通过应用程序启动时,已经绕开了Maven插件机制。

第3种:使用spring-boot-devtools提供的开发者工具

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- 有人说optional一定要配置成true才有效, 但我调试完感觉不加optional也有效 -->
<optional>true</optional>
</dependency>

优点:简单,支持Spring-boot项目,支持成员级别的修改热部署。

缺点:只支持spring-boot项目。

相关: application.properties配置

#热部署默认会重启
spring.devtools.restart.enabled=true
#添加那个目录的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
#排除那个目录的文件不需要restart
spring.devtools.restart.exclude=static/**,public/**

第4种:使用Jrebel插件实现热部署(该插件14天免费试用)

在线安装:菜单File -> Setting -> Plugin, 点击右侧底部 Browse repositories, 弹出框顶部输入:JReble for Intellij, 选中安装即可。

优点:强大,对各类框架支持,并且提供IDE插件的方式。

后3种方法是基于类加载机制来实现热加载的,因此你修改完成代码后必须重新编译当前代码,才能触发热部署。

idea操作

Eclipse默认就支持了自动编译,而在Intellij IDEA中默认是关闭了自动编译的,可以按照如下2步设置开启:

  • IDEA开启项目自动编译,进入设置,Build,Execut, Deployment -> Compiler 勾选中左侧的Build Project automatically

  • IDEA开启项目运行时自动make, ctrl + shift + alt + / 命令:registry -> 勾选compiler.automake.allow.when.app.running

参考自:

Intellij IDEA 4种配置热部署的方法==>https://www.cnblogs.com/a8457013/p/7866536.html

其它参考

spring boot修改代码后无需重启设置,在开发时实现热部署==>https://blog.csdn.net/testcs_dn/article/details/79929886

SpringBoot入门-2(两种热部署方式)==>https://www.cnblogs.com/xswz/p/7350562.html

Intellij IDEA 4种配置热部署的方法【转】【补】的更多相关文章

  1. Intellij IDEA 4种配置热部署的方法

    热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码. 第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源 菜单Run -> EditConfiguration , 然后 ...

  2. Tomcat下载安装并部署到IDEA(附带idea两种热部署设置方法)

    目录 Tomcat下载教程 Tomcat安装教程 Tomcat热部署到IDEA idea两种热部署设置方法 使用Idea的时候,修改了代码,需要反复的重启Tomcat,查看效果,是不是贼烦?还记得刚上 ...

  3. jrebel配置热部署参数

    jrebel配置热部署参数: -noverify -agentpath:D:/jrebel/lib/jrebel64.dll -Drebel.dirs=E:/workspace/item/src/ma ...

  4. springboot项目:以run as-->spring boot app方式启动,配置热部署(亲测可用!!!)

    1.在pom.xml中添加热部署依赖 <!-- 热部署 --> <!-- devtools可以实现页面热部署(即页面修改后会立即生效, 这个可以直接在application.prop ...

  5. springboot 配置热部署 及 热部署后依旧是404的坑

    springboot配置热部署的教程网上一大堆: 个人喜欢这种方式: https://www.cnblogs.com/winner-0715/p/6666579.html 本文主要强调的是,大家如果配 ...

  6. Linux操作系统下三种配置环境变量的方法

    现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作 ...

  7. Linux操作系统下三种配置环境变量的方法——转载

    来源:赛迪网 作者:millio       现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/e ...

  8. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

    Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...

  9. Intellij idea 配置热部署

    1. 采用外部tomcat的配置 1)打开右上角Run的Edit Configuration进入Tomcat配置选项页面 2)将On frame   deactivation选项更改为 Update ...

随机推荐

  1. Java 基本文件操作

    Java 文件操作 , 这也是基于Java API 操作来实现的. 文件是操作系统管理外存数据管理的基本单位, 几乎所有的操作系统都有文件管理机制. 所谓文件, 是具有符号名而且在逻辑上具有完整意义的 ...

  2. File operations 1

    1:只读(‘r' 和 ’rb'以字节读) f = open('d:\模特主妇护士班主任.txt',mode='r',encoding='UTF-8') content = f.read() print ...

  3. 导入python库失败时的方法

    出现以下错误如何解决: e.g. cmd:   pip install Django -i  http://mirrors.aliyun.com/pypi/simple/ --trusted-host ...

  4. 24G的SSD有什么用

    有台12G内存,带24G的SSD的笔记本,系统自带WINDOWS8,最近感觉很慢,就动手把1T的硬盘升级到512的SSD. BIOS里面明明看到24G的SSD,Windows里面就消失了(应该是坏掉了 ...

  5. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  6. ASP.NET Core部署在IIS上

    1.下载安装 Windows Server Hosting ,它的作用是,让IIS有反向代理功能(Asp.Net Core Module负责反向代理工作),将请求转发到 Kestrel 2.发布网站, ...

  7. Angular CLI 升级 6.0 之后遇到的问题

    Angular CLI 1.7.4 在使用 ng build --prod 会构建失败,而 ng build 是正常的.比较好的解决办法是使用 ng build --prod --extract-li ...

  8. dump解析入门-用VS解析dump文件进行排障

    突然有一天部署在服务器的一个应用挂掉了,没办法只能进入服务器打开 [事件查看器]查看下,好不容易找到了打开后一脸懵逼 事件查看器查到的内容根本对我们排障没有任何作用. 在这个时候如果有对应的dump文 ...

  9. 云计算openstack介绍

    一.云计算的前世今生 所有的新事物都不是突然冒出来的,都有前世和今生.云计算也是IT技术不断发展的产物. 要理解云计算,需要对IT系统架构的发展过程有所认识. 请看下 IT系统架构的发展到目前为止大致 ...

  10. 算法笔记-exgcd

    扩展欧几里得 扩展欧几里德算法是用来在已知a, b求解一组x,y, 使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理). 扩展欧几里德常用在求解模线性方 ...