-
2019-05-07 10:56:45
1. 热部署与热加载区别
热部署:重新加载项目应用,全局部署,会清空session以及释放内存。(如果项目中使用了第三方用户框架[如:shiro-spring],可能会无法正常使用)
热加载:java类若发生更改,则局部进行加载,不清空session,不释放内存
2. 如何配置
热部署的方式spring-boot-devtools,网上很多介绍,如果框架结合了thymeleaf,相应的配置也有
这里重点说下springloaded的配置
在maven的配置文件中增加
<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.8.RELEASE</version>
</dependency>
</dependencies>
</plugin></plugins></build>在项目中右键-->Run As-->Run Configurations..打开配置对话框-->在Arguments的VMarguments选项中配置【如果没有相对应的Application选项,要选择创建一个项目的application选项】
-javaagent:C:/Users/learnworm/.m2/repository/org/springframework/springloaded/1.2.8.RELEASE/springloaded-1.2.8.RELEASE.jar -noverify
开始测试【选择一个controller类,在方法中输入日志,观察日志输出变化即可】
@RestController
@RequestMapping(value="/api/dict")
@Api("wmDicController水价接口")
public class WmDicController extends BaseController {@Autowired
private DictServiceImpl dictServiceImpl;
@ApiOperation(value="查询水价")
@RequestMapping(value="/listDict",method=RequestMethod.GET)
@ResponseBody
public List<WmDict> getListWmDict() {
System.out.println("=====getListWmDict==222============");
return dictServiceImpl.ListDict();
}
}更多相关内容 -
SpringBoot热加载
2021-01-19 11:43:58其实可以通过一些插件,实现修改之后的热加载,并且只加载修改部分,从而也提高了效率。 方式一:使用JRebel //todo 方式二:使用spring-boot-devtools //todo 方式三:使用springloaded //todo ...使用SpringBoot开发的时候,修改完程序之后,需要手动点击重启,才能让修改生效,比较麻烦,也占用了更多的时间。
其实可以通过一些插件,实现修改之后的热加载,并且只加载修改部分,从而也提高了效率。
方式一:使用JRebel
JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。
IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费时间浪费生命。
目前对于idea热部署最好的解决方案就是安装JRebel插件。网址:在线GUID地址
如果失效刷新GUID替换就可以!服务器地址:https://jrebel.qekang.com/{GUID}
第三步:打开jrebel 如下所示面板,选择Connect to online licensing service
安装成功之后就可以通过JRebel启动项目。这样修改完Java代码后,就可以通过快捷键 Ctrl+shift+F9 而不再需要重启站点这样繁琐浪费时间的操作了。相关设置
设置成离线工作模式
设置自动编译
要想实现热部署,首先需要对Intellij按如下进行设置:
- 由于JRebel是实时监控class文件的变化来实现热部署的,所以在idea环境下需要打开自动变异功能才能实现随时修改,随时生效。
- 打开运行时编译
设置compiler.automake.allow.when.app.running
快捷键ctrl+shift+A,搜索:registry
或者
按快捷键 Ctrl+Shift+Alt+/ ,选择 Registry使用
运行项目时要点击图中红框中的按钮,即可运行:
第一个按钮是Run,第二个按钮是Debug。修改代码(只测试了Java代码的修改)后,完成加载以后,就已经实现了热更新效果。
方式二:使用springloaded
第一步:pom文件中添加依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.4.RELEASE</version> </dependency>
第二步:在spring的启动配置里面
第三步:在VM options里面输入下面一段代码
-javaagent:F:\m2\mcms\repository\org\springframework\springloaded\1.2.8.RELEASE\springloaded-1.2.8.RELEASE.jar -noverify
格式: -javaagent: "jar包的位置" -noverify
编译之后修改的代码可以生效
方式三:使用spring-boot-devtools
第一步:pom.xml添加依赖
<!-- 热部署方法1spring boot devtools 依赖包. --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency> <!-- 这是spring boot devtool plugin 热部署1常用--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--fork : 如果没有该项配置,这个devtools不会起作用,即应用不会restart --> <fork>true</fork> </configuration> </plugin>
application.yml配置文件中添加:
spring: devtools: restart: #热部署生效 enabled: true #设置重启的目录 #additional-paths: src/main/java #classpath目录下的WEB-INF文件夹内容修改不重启 exclude: WEB-INF/**
设置WEB-INF下的jsp修改不需要重启。
当我们修改了java类后,IDEA默认是不自动编译的,而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用,所以需要设置IDEA的自动编译:
这样就可以完成部署了。
上述三种热加载方式:
(1)jrebel需要在有网络的环境进行注册,无网环境配置稍显负载
(2)springloaded方式最简单,使用springloader这种方式,这并不是所有的代码都能够热部署的。
(3)使用devtools这种方式可以实现大部分代码的热部署,但是和数据库连接池有冲突,容易造成数据库连接池关闭
- 由于JRebel是实时监控class文件的变化来实现热部署的,所以在idea环境下需要打开自动变异功能才能实现随时修改,随时生效。
-
springboot热加载配置
2020-10-28 11:00:26所谓的热加载就是当java代码改变时,自动重启项目,你直接刷新页面就行了, 直接上吧! 第一步 <!--热加载--> <dependency> <groupId>org.springframework.boot</groupId> <...文章目录
所谓的热加载就是当java代码改变时,自动重启项目,你直接刷新页面就行了,
直接上吧!
第一步
<!--热加载--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>
然后加上一下代码使配置生效
<configuration> <fork>true</fork><!-- 如果没有该配置,热部署的devtools不生效 --> </configuration>
第二步
在配置文件中加入配置
#热部署生效 spring.devtools.restart.enabled=true #设置重启的目录,检索目录(resources/static、resources/templates) spring.devtools.restart.additional-paths= src/main/java #classpath目录下的WEB-INF文件夹内容修改不重启 spring.devtools.restart.exclude= WEB-INF/**
第三步
IDEA 配置修改File→Settings…→Build,Execution,Deployment→Compiler→勾选Buildprojectautomatically→确定
Ctrl+Shift+A→搜索Registry并选择Registry….→勾选compiler.automake.allow.when.app.running
-
springboot热加载
2021-05-12 10:20:49在pom.xml中加入 <dependency> <groupId>org.... spring: devtools: restart: enabled: true #设置开启热部署 additional-paths: src/main/java #重启目录 exclude: WEB-INF/** 注意格式哦,格式错就错了 热加载OK啦在pom.xml中加入
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>runtime</scope> </dependency>
后面记得更新包哦!!!
spring: devtools: restart: enabled: true #设置开启热部署 additional-paths: src/main/java #重启目录 exclude: WEB-INF/**
注意格式哦,格式错就错了
热加载OK啦
-
springBoot热加载设置
2020-07-03 22:31:58我们在开发springBoot微服务的时候,在代码编辑的时候每次改了代码都需要重启,这样会很耗费时间,因此在IDEA中需要热加载处理下。 第一步,需要添加热加载包。 <dependency> <groupId>org.spring... -
springboot热加载 热部署
2020-06-08 12:33:56linux yum安装指定版本mysql或php...1、下载mysql rpm包 cd /usr/local/src ...2、安装下载的rpm包 yum localinstall mysql80-community-release-el7-3.noarch.rpm 或 sudo rpm -Uvh mysql80-community-release-el6-n.noar -
Springboot 热加载/部署
2020-10-29 15:32:24热部署不会用在生产环境,但对于程序员开发的效率,还是有一定帮助的,所谓的热部署,就是在应用程序在不停止的情况下,实现新的部署 spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动... -
Springboot热加载和配置文件
2020-02-14 20:07:43热加载 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true<... -
Springboot热部署实现原理及实例详解
2020-08-19 03:31:23主要介绍了Springboot热部署实现原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
springboot 热加载的问题 idea下的springboot热加载的
2018-07-21 20:17:00最近在学spring框架,使用的是springboot可以省去很多的配置...于是就找到了springboot的热加载。操作还是很简单的。这里总结下,方便复习回顾和总结。 首先呢,记得引入依赖,大概需要这么几个 <depend... -
springboot 热加载
2018-02-23 09:56:03修改代码后不需要重启服务, 自动加载修改的内容。 修改内容后restart加载器加载会变动的资源。 那些第三方的包不会被重新加载, 所以可以提高重启速度pom.xml配置依赖配置: <dependency> <... -
Spring boot 热加载 springloaded-1.2.4.RELEASE JAR包
2017-08-25 17:44:49springloaded springboot 热加载 -
Java笔记:SpringBoot热部署与热加载
2020-11-12 09:55:371、Java热部署与热加载联系 不重启服务器编译/部署项目 基于Java的类加载器实现 2、Java热部署与热加载区别 2.1、部署方式 热部署在服务器运行时重新部署项目 热加载在运行时重新加载class 2.2、实现原理 -
SpringBoot热加载实现与类加载浅谈
2021-04-17 07:04:34热部署与热加载:热部署和热加载都是基于类加载器实现的,热加载是服务器监听class等文件的改变然后对改变的文件进行局部加载,所以不会删除session,也不会释放内存。热部署就是全局部署,会清空session以及释放... -
JAVA开发(五)idea配置Springboot热加载环境
2021-01-27 11:18:53配置热加载环境2.配置热部署环境 1.配置热加载环境 (1)Pom.xml文件中加入配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</... -
Idea使用springboot实现热加载配置方法
2022-05-02 19:39:56使用IDEA调试项目时,每次运行项目都需要1-2分钟,极大影响了调试效率,以下介绍一种通过springboot配置,实现热加载,具体过程如下: 引入相关依赖。打开pom文件,添加以下依赖 <dependency> <groupId&... -
springboot实现热加载
2019-08-28 14:46:37热加载是指在开发环境中开发者更改了代码,运行时重新加载 .class文件,基于字节码的更改,在不需要重新启动本地服务器,不释放内存的情况下,重新加载最新的代码。 ... -
idea springboot热加载
2019-05-01 22:43:44--热部署配置--> <groupId>org.springframework.boot <artifactId>spring-boot-maven-plugin <!--fork:如果没有该项配置,整个devtools不会起作用--> <fork>true 设置idea自动编译 4、 快捷键 ctrl ... -
springboot热加载 10
2019-04-08 21:23:47springboot是微服务的前提,因而热部署是其必要的一个特性之一。本文将讲述springboot如何实现热部署。 1、环境约束 win10 64位操作系统 idea2018.1.5 maven-3.0.5 jdk-8u162-windows-x64 2、前提约束 完成... -
SpringBoot教程(四)开发环境springboot的热加载和热部署
2018-12-06 11:33:47为了避免每次改动后重新启动的繁琐引入spring的热加载和热部署 一.SpringBoot热部署的原理 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。... -
SpringBoot 热加载以及添加debug调试
2017-11-30 18:04:18Springboot有两种热加载的方式,一种是spring-boot-devtools,但个人感觉这种方式效果太差,所以这里就不介绍了。 另外一种是springloaded,这个要搭配Maven来使用,所以要先装好Maven。 -
springboot 热更新、热加载 IDEA
2021-04-27 13:27:18springboot 热部署一、热部署二、IDEA中实现springboot热部署1、pom文件依赖2、project配置文件修改3、IDEA配置修改三、测试验证四、实现原理 之前一直在用热部署,但没有总结,网上有很多类似文章,我这里用最简洁...