Devtools是springboot中的热部署,热部署就是你更改java代码,不用再去重启整个工程来查看更改效果,只需要点击编译就可以看到变化,这大大缩短了工程开发时间,下面要介绍以下具体步骤。
1.创建spring boot项目
勾选web和devtools

查看pom.xml文件可以发现devtools已经被引入了,optional中的true是让devtools不允许引入其它依赖中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
2.创建控制类
这是一个简单的控制类,访问路径后加/hello,就可以看到hello devtools打印出来
package org.javaboy.devtools;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "hello devtools";
}
}
启动项目,访问http://localhost:8080/hello

现在更改return后面的内容:
return "hello devtools;hello javaboy";
如果没有热部署,就需要重新启动项目了,这里引入了devtools,直接点击编译就可以看到更改效果了。
编译就是那个绿色的锤子

点击之后刷新页面:

这就是热部署,大大减少了开发时间。Idea和Eclipse有一个不同之处,Eclipse可以通过保存来直接编译,所以启动时就只要运行就可以了,而idea启动是编译+运行两个步骤。所以idea要比eclipse慢一些,当然idea也可以设置为手动保存,这里不推荐大家使用。
上面部分的热部署是对动态资源有效果,但是对静态资源的改变是没有效果的,如果要对静态资源的改变产生效果,需要在application.properties中添加配置:
这句配置的含义是:将static目录下的静态资源文件热部署生效
spring.devtools.restart.exclude=classpath:/static/**
现在对static下的静态资源改变之后点击编译,刷新页面成功生效。

144

被折叠的 条评论
为什么被折叠?



