Spring Boot Devtools教程

如果您使用的是最新的UI开发框架,例如Node,angular,gulp等,那么您必须对在某些代码发生更改时在浏览器中自动重载UI有所了解。它非常有用,可以节省大量时间。

好吧,使用spring-boot-devtools依赖项提供的功能,可以在Spring Boot应用程序中使用相同的功能。让我们了解有关启用和使用这些功能的信息。

目录

启用Dev Tools模块
静态资源缓存
自动UI刷新 
	- 排除资源 
	- 监视其他路径
自动服务器重新启动 
	- 启用/禁用自动配置更改的日志记录 
	- 禁用重新启动 
	- 使用触发文件
全局设置文件

启用开发工具模块

在Spring Boot应用程序中启用开发工具非常容易。只需spring-boot-devtools在构建文件中添加依赖项即可。

马文

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

摇篮

dependencies {
	compile("org.springframework.boot:spring-boot-devtools")
}

静态资源缓存

为了提高性能,开发人员工具会缓存静态内容/模板文件,以将其更快地提供给浏览器/客户端。这是生产中非常好的功能,每毫秒的性能改进都很重要。但是在开发环境中,这可能是一个问题,并导致过时的缓存问题,并且您可能不会在浏览器中立即看到所做的更改。开发工具模块通过设置很少的属性来提供此功能。

默认情况下,此功能处于禁用状态。通过设置属性,可以使其在生产环境中使用。

有许多这样的UI模板库支持此功能。例如百里香叶,freemarker,groovy,胡须等。

#spring.freemarker.cache = true //set true in production environment
spring.freemarker.cache = false //set false in development environment; It is false by default.

//Other such properties

spring.thymeleaf.cache = false
spring.mustache.cache = false
spring.groovy.template.cache = false
自动刷新与自动重启 –自动刷新(或自动加载)是指在浏览器中重新加载UI,以查看静态内容的更改。自动重新启动是指重新加载服务器端代码和配置,然后重新启动服务器。

用户界面自动刷新

spring-boot-devtools模块包括一个嵌入式LiveReload服务器,该服务器可用于在更改资源时触发浏览器刷新。前提条件是您的浏览器应支持扩展。您可以在此链接中找到此类浏​​览器范围。

默认情况下,启用实时重新加载。如果您出于某些原因希望禁用此功能,请将spring.devtools.livereload.enabled属性设置为false

spring.devtools.livereload.enabled  = false #Set false to disable live reload

从自动重新加载中排除资源

默认情况下,自动重装在以下路径上起作用:

  1. /META-INF/maven
  2. /META-INF/resources
  3. /resources
  4. /static
  5. /public
  6. /templates

如果要在浏览器中为其中一些路径中的文件禁用自动重装,请使用spring.devtools.restart.exclude属性。例如

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

监视/排除其他路径

可能只有很少的文件不在类路径中,但是您仍然可能希望观看这些其他文件/路径以重新加载应用程序。为此,请使用该spring.devtools.restart.additional-paths属性。

spring.devtools.restart.additional-paths=script/**

同样,如果要保留这些默认值并添加其他排除项,请改用该spring.devtools.restart.additional-exclude属性。

spring.devtools.restart.additional-exclude=styles/**

服务器自动重启

自动重启意味着在服务器端重新加载Java类和配置。在动态地重新部署服务器端更改之后,服务器将重新启动并加载修改后的代码和配置。

启用/禁用自动配置更改的日志记录

默认情况下,每次应用程序重新启动时,都会记录一个报告,其中显示了条件评估增量。该报告显示了在进行更改(例如添加或删除Bean以及设置配置属性)时对应用程序自动配置的更改。

要禁用报告的日志记录,请设置以下属性:

spring.devtools.restart.log-condition-evaluation-delta = false

禁用重启

要在非静态代码更改时禁用服务器重启,请使用属性spring.devtools.restart.enabled

spring.devtools.restart.enabled = false

使用触发文件

每次文件更改都不希望自动重启,并且由于频繁重启,有时可能会减慢开发时间。要解决此问题,可以使用触发文件。Spring Boot将继续监视该文件,一旦检测到该文件中的任何修改,它将重新启动服务器并重新加载所有先前的更改。

使用spring.devtools.restart.trigger-file属性来提及您的应用程序的触发文件。它可以是任何外部或内部文件。

spring.devtools.restart.trigger-file = c:/workspace/restart-trigger.txt

全局设置文件

每次为所有spring boot项目或模块设置所有您喜欢的配置选项可能会成为重复的工作。您可以使用全局设置文件将其最小化。然后,各个项目/模块将从全局文件继承所有自定义设置,并且如果需要,它们可以覆盖每个项目基础的任何特定设置。

要创建全局文件,请转到系统用户的主目录并创建一个名为的文件.spring-boot-devtools.properties。(请注意,文件名以点开头)。不要使用此全局属性文件来配置全局可用选项。

spring.devtools.restart.trigger-file = c:/workspace/restart-trigger.txt

如果您有任何疑问,请在评论区留言,我会一一解答。

参考:Spring Boot参考

saigon has written 1445 articles

One thought on “Spring Boot Devtools教程

Leave a Reply