spring-boot中使用spring-boot-devtools的实现代码

 更新时间:2019年11月15日 11:19:44   作者:Charlie  
这篇文章主要介绍了spring-boot中使用spring-boot-devtools的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 什么是 spring-boot-devtools

spring-boot-devtools 是 spring-boot项目开发时的一个热部署工具,安装了 spring-boot-devtools 依赖,我们在修改源代码后无需 mvn spring-boot:run 手动重启spring-boot项目,spring-boot-devtools 会自动帮我们重新启动项目。
默认情况下,spring-boot-devtools 会检测 项目文件夹的类路径上的所有文件。注意,某些资源(如静态资产和视图模板)不需要重新启动项目。

2. spring-boot:run 的使用:

首先,要在pom.xml文件中配置依赖

<!--自动重启 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
</dependency>

配置好依赖后,运行项目的时候就会自动下载spring-boot-devtools 工具包,当我们对项目路径下的文件进行了修改,点击保存,就会触发重启。

注意,默认情况下,更改/META-INF/maven、/META-INF/resources、 /resources、/static、/public 不会触发重启。

如果想设置这些排除,可以在 applcation.properties文件中设置spring.devtools.restart.exclude。
例如,仅排除/static 和 /public 下的所有文件:

spring.devtools.restart.exclude=static/**,public/**

3. 如何禁用重启?

1)在application.properties中设置

spring.devtools.restart.enabled=false

2)完全禁用重新启动支持,需要设置spring.devtools.restart.enabled系统属性

public static void main(String[] args) {
  System.setProperty("spring.devtools.restart.enabled", "false");
  SpringApplication.run(MyApp.class, args);
}

注意踩坑:

之前使用eclipse做 spring-boot 做一个web项目的时候,配置了 spring-boot-devtools 依赖,第一次开启项目运行没有问题,然后习惯性的关闭项目去修改代码,修改完代码点击启动项目,报错:端口号被占用。

这个错误在学习web的时候如果操作失误,是最常见的错误之一,一般只要关闭了还在开启状态的tomcat就可以解决。
在使用spring-boot配置的web项目中,需要配置 spring-boot-web 依赖,这个依赖中内置有一个tomcat,所以在正常情况下,我们直接关闭项目是会自动关闭tomcat的,但在这里居然报错!

然后网上搜了半天,发现是 spring-boot-devtools 的问题,尝试禁用热部署,发现还是不行(可能是我环境问题,网上看有的人是成功了的)。这时候只能打开终端,输入:netstat -aon|findstr "8080" 查看正在占用8080端口的进程id(pid),然后打开任务管理器,关闭这个进程(或者直接在终端中输入命令关闭:taskkill /pid 4484 -f4484是占用8080端口的pid号)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java SpringMVC 异常处理SimpleMappingExceptionResolver类详解

    Java SpringMVC 异常处理SimpleMappingExceptionResolver类详解

    这篇文章主要介绍了SpringMVC 异常处理SimpleMappingExceptionResolver类详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • java高并发InterruptedException异常引发思考

    java高并发InterruptedException异常引发思考

    这篇文章主要为大家介绍了java高并发InterruptedException异常引发思考,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • IDEA实现导入module并成功运行

    IDEA实现导入module并成功运行

    这篇文章主要介绍了IDEA实现导入module并成功运行方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java中的ThreadLocalMap源码解读

    Java中的ThreadLocalMap源码解读

    这篇文章主要介绍了Java中的ThreadLocalMap源码解读,ThreadLocalMap是ThreadLocal的内部类,是一个key-value数据形式结构,也是ThreadLocal的核心,需要的朋友可以参考下
    2023-09-09
  • java实现图片水平和垂直翻转效果

    java实现图片水平和垂直翻转效果

    这篇文章主要为大家详细介绍了java实现图片水平和垂直翻转效果,图片旋转的灵活运用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Java中利用gson解析Json实例教程

    Java中利用gson解析Json实例教程

    这篇文章主要给大家介绍了关于Java中利用gson解析Json 的相关资料,文中给出了详细的示例代码供大家参考学习,相信对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Mybatis插入Oracle数据库日期型数据过程解析

    Mybatis插入Oracle数据库日期型数据过程解析

    这篇文章主要介绍了Mybatis插入Oracle数据库日期型数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 聊聊springmvc中controller的方法的参数注解方式

    聊聊springmvc中controller的方法的参数注解方式

    本篇文章主要介绍了聊聊springmvc中controller的方法的参数注解方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 如何利用@PreAuthorize注解自定义权限校验

    如何利用@PreAuthorize注解自定义权限校验

    通过使用@PreAuthorize注解实现开放接口的权限校验,具体步骤包括开启全局方法安全、编写自定义鉴权方法、创建自定义异常类、在统一异常处理类中捕获异常并处理,最后在需要鉴权的接口上贴上注解
    2024-12-12
  • Java基础之ArrayList的扩容机制

    Java基础之ArrayList的扩容机制

    这篇文章主要介绍了Java基础之ArrayList的扩容机制,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05

最新评论