Spring Boot 热部署

实际开发中,修改某个页面数据或逻辑功能都需要重启应用。这无形中降低了开发效率,所以使用热部署是十分必要的。

什么是热部署?

应用启动后会把编译好的Class文件加载的虚拟机中,正常情况下在项目修改了源文件是需要全部重新编译并重新加载(需要重启应用)。而热部署就是监听Class文件的变动,只把发生修改的Class重新加载,而不需要重启应用,使得开发变得简便。

Spring Boot 配置实现热部署

第一种方式:maven 插件-springloaded

在spring-boot-maven-plugin插件配置中添加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.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>

通过命令:mvn spring-boot:run 启动应用,修改controller中代码 或 修改html页面 后再刷新页面,会发现显示结果跟着变化。

注意:第一种方式 对 mvn spring-boot:run 这种方式启动应用有效,而对直接运行Application.java启动应用无效。

注意1:如果发现没有热部署效果,则需要检查idea配置中有没有打开自动编译:

打开 Preferences > Compiler , 勾选 Build project automatically

注意2:如果使用Thymeleaf模板引擎,需要把模板默认缓存设置为false

在application.properties中添加:

#禁止thymeleaf缓存(建议:开发环境设置为false,生成环境设置为true)
spring.thymeleaf.cache=false

第二种方式:依赖 spring-boot-devtools 热部署模块

pom.xml 添加依赖:

<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>

重启应用,修改controller中代码 或 修改html页面 后再刷新页面,会发现显示结果跟着变化。

版权声明:本文为博主原创文章,转载请注明出处。

最新文章

  1. Hawk 4.6 并行化
  2. Github Pages和Hexo创建静态博客网站
  3. js jquery 页面加载初始化方法
  4. The type String cannot be constructed. You must configure the container to supply this value.
  5. question
  6. php 正则表达式
  7. asp.net中导出Execl的方法
  8. Linux之SAMBA共享服务
  9. Panopticon跨平台的逆向工程反汇编工具
  10. C#获取cpu序列号 硬盘ID 网卡硬地址以及操作注册表 .
  11. Using AngularJS with .NET MVC 5
  12. 在Linux下安装C/C++开发工具包的最佳方式
  13. UIViewAnimationOptions类型
  14. yii2 添加模块过程
  15. Android JNI入门第三篇——jni头文件分析
  16. AngularJS入门第一课
  17. Java8新特性之三:Stream API
  18. xibai的PCI卡在英文系统上安装报错
  19. Ubuntu下redis允许外部链接
  20. [ASE][Daily Scrum]11.07-11.09

热门文章

  1. MessageDialog
  2. linux vsftpd 配置
  3. maven下载速度慢的解决方法(转)
  4. lib/sqlalchemy/cextension/processors.c:10:20: 致命错误: Python.h:没有那个文件或目录
  5. CRC编码
  6. webpack入坑之旅(二)loader入门
  7. iphone6S“玫瑰金”的秘密——阳极氧化
  8. logstash 发送zabbix 给消息加上type
  9. Remove Element 解答
  10. Hello World -- 第一篇博客
  11. git的一些常见命令
  12. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器
  13. Web前端培训教程:CSS3动画怎么实现的
  14. 什么是CLOS架构?
  15. tomcat源码阅读之默认连接器
  16. DNSlog盲注
  17. 1.7.8使用return 停止线程
  18. Samsung_tiny4412(驱动笔记09)----alloc_pages,kmalloc,vmalloc,kmem_cache,class
  19. ubuntu16.04安装cuda,无法定位软件包问题
  20. struts2.xml中所有constant详解--大全