à悟空学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
Spring Cloud视频:http://t.cn/A6ZagxSR
SpringBoot Shiro视频:http://t.cn/A6Zag7IV
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringData和JPA视频:http://t.cn/A6Zad1OH
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
Sharding-JDBC分库分表实战:http://t.cn/A6ZarrqS
分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr
我们之前在在(3)Spring Boot热部署【从零开始学Spring Boot】
(http://412887952-qq-com.iteye.com/blog/2291518 )讲过通过使用springloaded
进行热部署,但是有部分代码修改了,并不会进行部署。今天我们介绍的这个通过重启的机制就可以解决这个问题了。
我们今天要介绍的就是:spring-boot-devtools。
spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是比速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader
,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
那如何使用呢,大概两个步骤即可:
第一就是添加相应的依赖:
<!-- devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现), 实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。 即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
第二加点:仅仅加入devtools在我们的eclipse中还不起作用,这时候还需要添加的spring-boot-maven-plugin:
<build> <plugins> <!-- 用于将应用打成可直接运行的jar(该jar就是用于生产环境中的jar) 值得注意的是,如果没有引用spring-boot-starter-parent做parent, 且采用了上述的第二种方式,这里也要做出相应的改动 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart --> <fork>true</fork> </configuration> </plugin> </plugins> </build>
运行App.java ---- Run Application --- Java Application即可进行测试。
测试方法:
· 修改类-->保存:应用会重启
· 修改配置文件-->保存:应用会重启
· 修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)
不能使用分析:
(a) 对应的spring-boot版本是否正确,我这里使用的是1.3.3版本;
(b) 是否加入plugin了,以及属性<fork>true</fork>
(c) Eclipse Project 是否开启了Build Automatically(我自己就在这里栽了坑,不知道为什么我的工具什么时候关闭了自动编译的功能)。
(d) 如果设置SpringApplication.setRegisterShutdownHook(false)
,则自动重启将不起作用。
补充:
默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload server,当资源发生改变时,浏览器刷新)。
· 如果想改变默认的设置,可以自己设置不重启的目录:spring.devtools.restart.exclude=static/**,public/**,这样的话,就只有这两个目录下的文件修改不会导致restart操作了。
· 如果要在保留默认设置的基础上还要添加其他的排除目录:spring.devtools.restart.additional-exclude
· 如果想要使得当非classpath下的文件发生变化时应用得以重启,使用:spring.devtools.restart.additional-paths,这样devtools就会将该目录列入了监听范围。
关闭自动重启
设置 spring.devtools.restart.enabled 属性为false,可以关闭该特性。可以在application.properties中设置,也可以通过设置环境变量的方式。
public
static
void
main(String[] args){
System
.
setProperty
(
"spring.devtools.restart.enabled"
,
"false"
);
SpringApplication
.
run
(
MyApp
.
class
,
args
);
【Spring Boot 系列博客】
à悟空学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
Spring Cloud视频:http://t.cn/A6ZagxSR
SpringBoot Shiro视频:http://t.cn/A6Zag7IV
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringData和JPA视频:http://t.cn/A6Zad1OH
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
Sharding-JDBC分库分表实战:http://t.cn/A6ZarrqS
分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr
网易云课堂视频最新更新:
第十一章 Spring Boot 日志
1、spring boot日志—理论
2、Spring Boot日志-logback
3、Spring Boot日志-log4j2
第十二章 Spring Boot 知识点2
1、spring boot 服务配置和部署
2、Spring Boot 定制URL匹配规则
历史章节:
第一章 快速开始
1、Spring Boot之Hello World
2、Spring Boot之Hello World访问404
第二章 Spring Boot之JSON
1、spring boot返回json数据
2、Spring Boot完美使用FastJson解析JSON数据
第三章 Spring Boot热部署
1、Spring Boot热部署(springloader)
2、springboot + devtools(热部署)
第四章 Spring Boot数据库
1、Spring Boot JPA/Hibernate/Spring Data概念
2、Spring Boot JPA-Hibernate
3、Spring Boot Spring Data JPA介绍
4、Spring Boot JdbcTemplate
5、Spring Boot集成MyBatis
第五章 web开发
1、全局异常捕捉
2、配置server信息
3、spring boot使用thymeleaf
4、Spring Boot 使用freemarker
5、Spring Boot添加JSP支持
第六章 定时任务
1、Spring Boot定时任务
2、Spring Boot 定时任务升级篇(动态修改cron参数)
3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)
4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)
5、Spring Boot Quartz介绍
6、Spring Boot Quartz在Java Project中使用
7、Spring Boot 集成Quartz普通使用
8、Spring Boot 集成Quartz升级版
9、Spring Boot 集成Quartz二次升级版
10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象
第七章 Spring Boot MyBatis升级篇
1、Spring Boot MyBatis升级篇-注解
2、Spring Boot MyBatis升级篇-注解-自增ID
3、Spring Boot MyBatis升级篇-注解-增删改查
4、Spring Boot MyBatis升级篇-注解-分页查询
5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效
6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found
7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇
8、Spring Boot MyBatis升级篇-注解-@Result
9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>
10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider
11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题
12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper
13、Spring Boot MyBatis升级篇-XML
14、Spring Boot MyBatis升级篇-XML-自增ID
15、Spring Boot MyBatis升级篇-XML-增删改查
16、Spring Boot MyBatis升级篇-XML-分页查询
17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效
18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)
19、Spring Boot MyBatis升级篇-XML-注解-初尝试
20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter
第八章 Spring Boot 知识点1
1、Spring Boot 拦截器HandlerInterceptor
2、Spring Boot启动加载数据CommandLineRunner
3、Spring Boot环境变量读取和属性对象的绑定
4、Spring Boot使用自定义的properties
5、Spring Boot使用自定义的properties
6、Spring Boot使用@SpringBootApplication
7、Spring Boot 监控和管理生产环境
第十章 Spring Boot 打包部署
1、Spring Boot打包部署((提供Linux的sh文件))
第十一章 Spring Boot 日志
1、spring boot日志—理论
2、Spring Boot日志-logback
3、Spring Boot日志-log4j2
更多查看博客: http://412887952-qq-com.iteye.com/
相关推荐
例如,Spring Boot DevTools就是一种常用的热部署工具,它可以监听源代码的变化并自动重启应用的上下文,大大减少了开发迭代的时间。 “热部署页面访问”意味着这个项目不仅实现了代码的热部署,还确保了用户界面的...
Spring Boot通过Spring DevTools支持热部署,当检测到源码变更时,会自动重新加载应用。 综上所述,这个项目是一个使用IntelliJ IDEA开发的、基于Spring Boot的Web应用,与Oracle数据库集成,利用MyBatis进行数据...
标题 "idea+springboot+springloaded热部署例子" 涉及到的是使用IntelliJ IDEA(简称Idea)作为开发环境,结合Spring Boot和SpringLoaded进行应用的热部署技术。这一过程允许开发者在代码修改后无需重启服务器就能...
为了提高开发效率,SpringBoot支持热部署插件,如Spring Boot DevTools,可以在代码更改后自动重启应用,减少了手动重启的步骤。MyBatis也支持热部署,但需要配合IDE的热部署功能,例如IntelliJ IDEA的Rebuild ...
在本文中,我们将深入探讨如何使用SpringBoot和Mybatis构建基础的开发环境,并配置热部署。SpringBoot以其简化Spring应用程序的初始设置而受到广大开发者喜爱,而Mybatis作为轻量级的持久层框架,提供了灵活的数据...
- 创建 SpringBoot 项目:使用 Spring Initializr 初始化项目,选择必要的依赖,例如 Web(如果需要构建 RESTful API)、DevTools(方便开发时热加载)等。 - 配置应用主类:使用 `@SpringBootApplication` 注解...
在“springboot+mybatis”的整合中,Spring Boot会自动配置MyBatis的数据源、事务管理器以及SqlSessionFactory,使得MyBatis能够无缝集成到Spring Boot环境中。 MyBatis是一个优秀的持久层框架,它允许开发者使用...
05、springboot + devtools(热部署)_标清.flv 06、Spring Boot JPAHibernateSpring Data概念_标清.flv 07、Spring Boot JPA-Hibernate_标清.flv 08、Spring Boot Spring Data JPA介绍_标清.flv 09、Spring ...
Spring Boot的DevTools是开发者工具集,主要用于简化开发过程中的热部署问题。热部署是指在开发过程中,当代码发生变化时,无需手动重启应用,系统能够自动检测并重新加载修改后的代码,大大提高了开发效率。本教程...
Spring Boot+Spring Cloud 试题解析 Spring Boot 是一个基于 Java 的框架,...这些题目涵盖了 Spring Boot 和 Spring Cloud 的基础知识,包括配置文件的读取、日志框架的选择、热部署方式、事件机制、断路器的作用等。
IntelliJ IDEA中SpringBoot项目通过devtools实现热部署的方法 1. 添加devtools依赖项:在pom.xml文件中添加spring-boot-devtools依赖项,以便在IntelliJ IDEA中使用热部署功能。 知识点:spring-boot-devtools是...
`devtools`模块是Spring Boot提供的一项专为开发环境设计的工具,用于实现快速迭代和热部署。 **一、Spring Boot devtools介绍** `spring-boot-devtools`,又称为开发者工具,包含了一系列对开发者友好的特性。...
5. Spring Boot DevTools:开发者工具,支持热部署、重启应用等。 **MyBatis知识点:** 1. SQL映射:XML或注解方式定义SQL语句。 2. 动态SQL:强大的动态条件构造能力。 3. 映射器接口:通过Mapper接口与数据库交互...
1. **下载与解压**:首先,你需要从官方渠道或GitHub仓库下载vue.js-devtools_5.1.1的压缩包,并将其解压到本地文件夹。 2. **浏览器扩展管理**:打开你的浏览器(通常支持Chrome、Firefox等主流浏览器),进入...
对于热部署,Spring Boot提供了DevTools(开发者工具)模块,这是一个强大的开发辅助工具。当我们在开发过程中修改了源代码并保存后,DevTools可以自动重启应用,无需手动构建或刷新。要启用DevTools,只需在`pom....
在开始搭建基于Idea2019、Spring Boot 和 Mybatis 的开发环境之前,首先需要通过Spring Initializr 来初始化一个Spring Boot项目。 1. **选择Spring Initializr**:打开IntelliJ IDEA 2019,点击`File` -> `New` ->...
而Spring Boot DevTools则支持热部署,可以在开发过程中快速迭代代码,提高开发效率。 总的来说,SpringBoot+Thymeleaf组合为企业员工管理系统提供了强大而灵活的基础架构。它们简化了开发流程,提高了开发效率,...
SpringBoot2.X Devtools是Spring Boot提供的一种开发者工具集,其中包含了热部署功能,使得开发者在开发过程中无需手动重启应用就能看到代码变更的效果。热部署极大地提高了开发效率,减少了因频繁重启应用而浪费的...
文档中提到了项目使用了`spring-boot-starter-web`、`spring-boot-devtools`、`lombok`、`spring-boot-starter-test`、`druid-spring-boot-starter`以及`mybatis-spring-boot-starter`依赖,这些是构建Spring Boot...