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

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

热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码。

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

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

    优点:简单

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

  • 第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), 支持 成员级别的修改(增删改方法、字段、注解),支持对枚举值集。

    缺点:与优点相对

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

    spring-boot项目中引入如下依赖

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

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

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

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

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

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

最后3种方法是基于类加载机制来实现热加载的,因此你修改完成代码后必须重新编译当前代码,才能触发热部署,Eclipse默认就支持了自动编译,而在Intellij IDEA中默认是关闭了自动编译的,可以按照如下2步设置开启:

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

     

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

 

 

 

springboot的进程:

 

转载于:https://www.cnblogs.com/gaogaoyanjiu/p/9830340.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql启动报错:Another MySQL daemon already running with the same unix socket.

[rootlocalhost ~]#/etc/init.d/mysqld restart Stopping mysqld: [ OK ] Another MySQL daemon already running with the same unix socket. Starting mysqld: [FAILED] 原因多个Mys…

malloc申请一维动态数组的错误

正确写法&#xff1a;int *tmp ( int * )malloc( H*W*sizeof(int) ); float *tmp ( float * )malloc( H*W*sizeof(float) ); double *tmp ( double * )malloc( H*W*sizeof(double) ); 错误写法&#xff1a;double *tmp ( double * )malloc( H*W*sizeof(double * ) ); 错…

java检查注入sql框架_Java:检查器框架

java检查注入sql框架我在JavaOne 2012上 了解的有趣的工具之一是Checker Framework 。 Checker Framework的网页之一 指出 &#xff0c;Checker Framework“增强了Java的类型系统&#xff0c;使其更加强大和有用”&#xff0c;从而使软件开发人员“能够检测并防止Java程序中的错…

jqc3ff继电器引脚图_电气元件中间继电器的知识全面解读,欢迎电工朋友收藏!...

继电器(英文&#xff1a;Relay)&#xff0c;也称电驿&#xff0c;是一种电子控制器件&#xff0c;它具有控制系统(又称输入回路)和被控制系统(又称输出回路)&#xff0c;通常应用于自动控制电路中&#xff0c;它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路…

]remove-duplicates-from-sorted-list-ii (删除)

题意略&#xff1a; 思路都在注解里&#xff1a; #include<iostream> #include<cstdio> using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};class Solution {public:ListNode *deleteDuplicates(ListNode *h…

C语言动态数组建立方法

动态数组是指在声明时没有确定数组大小的数组&#xff0c;即忽略圆括号中的下标&#xff1b;当要用它时&#xff0c;可随时用ReDim语句&#xff08;C语言中用malloc语句&#xff09;重新指出数组的大小。使用动态数组的优点是可以根据用户需要&#xff0c;有效利用存储空间。 动…

Linux小宝典之理解Chroot模式

Chroot 在 Linux 系统中发挥了根目录的切换工作&#xff0c;同时带来了系统的安全性等好处。本文通过编写 chroot 来理解 chroot 的作用和好处&#xff0c;这不仅有助于更好的使用 chroot&#xff0c;同时加深了对 Linix 系统初始 RAM 磁盘工作的认识。 chroot&#xff0c;即 …

jHipster入门,第1部分

因此&#xff0c;您想保持技术的领先地位&#xff0c;但对所有活动部件感到不知所措。 你真幸运&#xff01; 这是jHipster发光的地方。 如果您喜欢Ruby on Rails或Grails的方法来快速启动和运行应用程序&#xff0c;那么这可能是适合您的选择。 jHipster旨在使设置应用程序变…

python每隔30s检查一次_用Python写一个“离线语音提示器”来提醒我们别忘记了时间...

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。环境&#xff1a;Win7系统&#xff0c;外网未连接&#xff0c;主机接有返听音箱。准备&#xff1a;这里明显要用语音合成&#xff0c;既然是离线状态…

vue中map组件

分享一个比较好用的基于百度地图的vue组件。也有react版本的&#xff0c;可以自行选择。 分享链接&#xff1a;点击转载于:https://www.cnblogs.com/yunnex-xw/p/9996600.html

MATLAB中mean的用法

1、函数功能 求数组的平均数或者均值 2、使用方法 ① M mean(A) 返回沿数组中不同维的元素的平均值。 如果A是一个向量&#xff0c;mean(A)返回A中元素的平均值。 如果A是一个矩阵&#xff0c;mean(A)将其中的各列视为向量&#xff0c;把矩阵中的每列…

Linux中profile、bashrc、bash_profile之间的区别和联系

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为&#xff1a; # /etc/profile # System wide environment and startup programs, for login setup # Functions and alias…

python selenium 等待元素出现_Python Selenium等待加载几个元素

考虑到Mr.E.和Arran的评论&#xff0c;我在CSS选择器上完全遍历了列表。棘手的部分是关于我自己的列表结构和标记(更改类等)&#xff0c;以及动态创建所需的选择器并在遍历期间将它们保存在内存中。我通过搜索任何未加载状态的内容来处理等待几个元素的问题。您也可以使用“&am…

网络操作系统第242页作业

1.简述电子邮件的工作原理。 答&#xff1a;用户编辑的E mail被转换成一个标准的邮件格式&#xff0c;这个邮件格式中可以包含各种样式的文件&#xff0c;如图像&#xff0c;声音&#xff0c;可执行程序等。邮件的内容以各种编码方式转换成ASCII码的形式&#xff0c;以便在网络…

MATLAB中median函数的用法

1.功能 求矩阵的中间值。 2.格式 ①median(M) 每一列返回一个值,为M该列的从大到小排列的中间值. ②median(M,dim) dim为1&#xff0c;2。其中1表示按每列返回一个值,为该列从大到小排列的中间值,, 2表示按每行返回一个值,为该行从大到小排列的中间值. 注意:如果行或列的个数为…

测试驱动开发 测试前移_测试驱动陷阱,第2部分

测试驱动开发 测试前移单元测试中单元的故事 在本文的上半部分 &#xff0c;您可能会看到一些不好但很受欢迎的测试示例。 但是我不是一个专业的批评家&#xff08;也被称为“巨魔”或“仇恨者”&#xff09;&#xff0c;没有任何建设性的话就抱怨。 多年的TDD教给我的不仅仅是…

CentOS6.3 重启后/etc/resolv.conf 被还原解决办法

今天一台服务器上不了网&#xff0c;设置了nameserver&#xff0c;重启后/etc/resolv.conf文件就被自动还原了&#xff0c;最后发现是被Network Manager修改了。 解决方法&#xff1a; 停止Network Manager服务 service NetworkManager stop重启网络服务 /etc/init.d/network r…

react安装_超全面详细一条龙教程!从零搭建React项目全家桶(上篇)

React是近几年来前端项目开发非常火的一个框架&#xff0c;其背景是Facebook团队的技术支持&#xff0c;市场占有率也很高。很多初学者纠结一开始是学react还是vue。个人觉得&#xff0c;有时间的话&#xff0c;最好两个都掌握一下。从学习难度上来说&#xff0c;react要比vue稍…

MATLAB中find函数详解

&#xff08;转自http://blog.sina.com.cn/emily250886&#xff09; 功能&#xff1a; 寻找非零元素的索引和值语法&#xff1a;1. ind find(X) 2. ind find(X, k) 3. ind find(X, k, first) 4. ind find(X, k, last) 5. [row,col] find(X, ...) 6. [row,col,v] f…

Oracle Service Bus简介

我们正在为电信提供商设计一个新系统&#xff0c;在该系统中&#xff0c;我们研究了用作企业服务总线的Oracle服务总线&#xff08;OSB&#xff09;。 对我来说&#xff0c;第一个优点是它提供了惊人的工具支持。 通过将其捆绑为Oracle SOA套件&#xff0c;Oracle已将其所有企业…