spring-boot中使用spring-boot-devtools的实现代码
1.什么是spring-boot-devtools
spring-boot-devtools是spring-boot项目开发时的一个热部署工具,安装了spring-boot-devtools依赖,我们在修改源代码后无需mvnspring-boot:run手动重启spring-boot项目,spring-boot-devtools会自动帮我们重新启动项目。
默认情况下,spring-boot-devtools会检测项目文件夹的类路径上的所有文件。注意,某些资源(如静态资产和视图模板)不需要重新启动项目。
2.spring-boot:run的使用:
首先,要在pom.xml文件中配置依赖
org.springframework.boot spring-boot-devtools
配置好依赖后,运行项目的时候就会自动下载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系统属性
publicstaticvoidmain(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/pid4484-f4484是占用8080端口的pid号)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。