[springBoot系列]--springBoot的热部署

在SpringBoot中启用热部署是非常简单的一件事,因为SpringBoot为我们提供了一个非常方便的工具spring-boot-devtools 或者 springloaded,我们只需要把这个工具引入到工程里就OK了,下面我就说一下怎么引入spring-boot-devtools。

一、修改pom.xml

我们只需要在pom.xml里,引入相应的jar包就行了。  --optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入

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

</dependency>  
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>springloaded</artifactId>
    <version>1.2.4.RELEASE</version>
</dependency> 

 

或者: --使用springloaded进行热部署,但是有部分代码修改了,并不会进行部署。 所以不推荐

二、重新编译类文件

当我们修改了一个java类的时候,我们只需要重新编译一下,SpringBoot的就会重启了。因为devtools会监听classpath下的文件变动,所以当java类重新编译的时候,devtools会监听到这个变化,然后就会重新启动SpringBoot。这个重启是非常快的一个过程。因为在SpringBoot中有两个类加载器,一个是加载工程外部资源的,如jar包,还有一个类加载器是用来加载本工程的class的。所以在重启SpringBoot的时候只加载本工程的class文件。

三、监听文件夹的变化

如果你不想重新编译java类的话,还有一种方式用来让SpringBoot重启,那就是让devtools监听文件夹的变化:比如我们想让com.zkn.learnspringboot这个文件夹下的文件改变的时候,重新启动SpringBoot,那么我们只要在application.properties中添加这样一句话就行了:spring.devtools.restart.additional-paths=com\\zkn\\learnspringboot。

四、页面热部署

devtools可以实现页面热部署,即页面修改后会立即生效。你可以在application.properties文件中配置spring.thymeleaf.cache=false来实现这个功能。

时间: 2024-10-12 04:32:54

[springBoot系列]--springBoot的热部署的相关文章

SpringBoot配置devtools实现热部署

SpringBoot配置devtools实现热部署 spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtools的原理 深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的resta

SpringBoot入门-2(springload热部署)

1.在1的基础上,pom文件添加一个plugin节点 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <

SpringBoot+gradle+idea实现热部署和热加载

前言 因为之前使用myeclipes的同学就知道,在使用myeclipes的时候,java文件或者jsp文件写完之后会被直接热加载到部署的容器中,从而在开发的时候,不同经常去重启项目,从而达到了增加开发效率的目的. 但是现在切换到SpringBoot之后,因为没有外部容器的支持,而且使用gradle去构建项目,再加上idea默认不会自动编译的特性,最终导致开发项目的时候需要经常重启项目,这是我们不愿意看到的. 为了提高开发效率,我们下面将优化我们的SpringBoot模版.方案经过验证,可放心使

SpringBoot(二)——热部署(springloader)

一.问题的提出:  在编写代码的时候,有时只是简单把打印信息改变了,就需要重新部署SpringBoot项目,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢?那就是springloaded 二.原理  spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手

SpringBoot 4.SpringBoot 整合 devtools 实现热部署

一.添加 devtools 依赖 <!-- Spring boot 热部署 : 此热部署会遇到 java.lang.ClassCastException 异常 --> <!-- optional=true,依赖不会传递,该项目依赖devtools:之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 --> <dependency> <groupId>org.springframework.boot</groupId> <

SpringBoot : 利用devtools实现热部署,改动代码自动生效

一.前言 spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间. 其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart

SpringBoot通过devtools实现热部署

在项目的pom.xml文件添加如下两段 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>1.5.7.RELEASE</version> <optional>true</optional>   </dependency&g

spring-boot与springloaded进行热部署

在开发Java程序时候,修改代码了就需要重启一下应用,这样肯定会导致开发效率低.在Java世界里,怎么可以允许这样的问题出现呢?spring为我们提供了一个免费好用的jar包--springloaded. 可以到很多地方去找,如:spring-loaded 下面我写一下如何部署: 第一种.eclipses直接运行方式: 下载springloaded:http://repo.spring.io/release/org/springframework/springloaded/1.2.5.RELEA

SpringBoot系列之—瘦身部署

一.前言SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼: 编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了. 这个时候如果想要对线上运行工程有一些微调,则非常痛苦, :( 二.瘦身前的Jar包Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可以的- SpringBoot编译出来的Jar包中,磁盘占用大的,是一些外部依赖库(jar包),例