• 玩转 Springboot 2 之热部署(DevTools)


    Devtools 介绍

    SpringBoot 提供了热部署的功能,那啥是热部署累?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用程序。在IDE中工作时,这可能是一个有用的功能,因为它为代码更改提供了非常快速的反馈循环。默认情况下,将监视类路径上指向文件夹的任何条目的更改。请注意,某些资源(如静态资产和视图模板)无需重新启动应用程序。

    触发重启
    由于DevTools监视类路径资源,因此触发重新启动的唯一方法是更新类路径。导致更新类路径的方式取决于您使用的IDE。在Eclipse中,保存修改后的文件会导致更新类路径并触发重新启动。在IntelliJ
    IDEA中,构建项目(Build -> Build Project)具有相同的效果。

    同时DevTools 还提供了运行远程应用程序功能,其实就是修改本地代码,就能够实时的更新到远程应用中,这样就可以实现本地代码和远程服务器代码联合调试。

    使用 DevTools 进行热部署操作

    Eclipse 使用SpringBoot DevTools

    第一步是引入 spring-boot-devtools 依赖,具体代码如下:

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

    然后就完事啦。我们就可以使用了,修改类和页面啥的就不用在重启项目了啊哈。

    IntellJ IDEA 使用SpringBoot DevTools

    第一步是引入 spring-boot-devtools 依赖,具体代码如下:

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

    你可能觉得已经完事了,但是我可以肯定的告诉你 NO NO NO,还需要做一点小小的配置。

    第二步 启动自动编译功能。具体操作如下:

    File -> Settings -> Build,Execution,Deplyment -> Compiler,选中打勾 Build project automatically。具体操作如下图:
    在这里插入图片描述
    在这里插入图片描述
    第三步设置程序运行过程中,依然允许自动编译。具体操作如下:

    使用快捷键 Shift+Ctrl+Alt+/ ,点击 Registry 选项 ,选中compiler.automake.allow.when.app.running 具体操作如下图:
    在这里插入图片描述
    在这里插入图片描述
    进行完如上操作后就可以放心的在 IntellJ IDEA 上进行 SpringBoot 项目的开发了,在也不用担心重启的问题啦。

    DevTools 常用配置介绍

    正常来讲在使用 DevTools 的过程中是不需要进行配置的,如果你需要自定义重启目录和不需要重启的目录等信息的话,SpringBoot 也为我们提供了具体的配置项在 application.properties 中。

    常用配置如下:

    spring.devtools.restart.log-condition-evaluation-delta=false #禁用日志报告
    spring.devtools.restart.exclude=static/,public/ #不需要修改触发重启的文件目录
    spring.devtools.restart.additional-exclude #默认配置下还需要在新增的排除目录
    spring.devtools.restart.additional-paths=#添加需要监视需改文件后重启的路径
    spring.devtools.restart.enabled=true #是否禁用重启

  • 相关阅读:
    线程简介
    JDBC连接数据库遇到的“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。
    项目开发中需要考虑的问题2
    JPA使用中遇到Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped
    ORA-01747: user.table.column, table.column 或列说明无效
    IDEA使用一套代码启动多个应用
    tomcat8.5部署管理控制台
    ubuntu16虚拟机迁移/移动/复制后无法上网
    centos7没有IP地址
    repmgr自动故障转移的参数配置
  • 原文地址:https://www.cnblogs.com/jerry126/p/11531314.html
Copyright © 2020-2023  润新知