欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot学习:《知识篇》开发者工具spring-boot-devtools(上)

程序员文章站 2022-03-23 23:21:33
...

1、开发者工具spring-boot-devtools
SpringBoot所提供的开发者工具spring-boot-devtools可以提高开发效率。
Maven使用:

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

在运行一个完整封装APP时,开发者工具是自动关闭的。

2、默认属性
spring-boot-devtools默认使用caches,但是在开发过程中不利于观察所做的修改。在开发时,可以在application.properties文件中设置关闭cache选项。如spring.thymeleaf.cache=false。

如果需要在log中获得更多的细节信息,可以设置spring.http.log-request-details属性。

如果不使用默认属性设置,可以在application.properties中设置spring.devtools.add-properties=false。

3、自动重启
spring-boot-devtools的使用,会导致classpath路径上文件改变时重启。默认情况下,类路径上指向文件夹的任何条目都会被监视以进行更改。但是有些静态资源的改变,不会重启应用程序。

重启和重载:Spring Boot提供的重启技术通过使用两个类加载器来工作。不改变的类(例如,来自第三方jar的类)被加载到基类加载器中。正在积极开发的类将加载到重新启动的类加载器中。当应用程序重新启动时,restart类加载器将被丢弃,并创建一个新的类加载器。这种方法意味着应用程序重启通常比“冷启动”快得多,因为基本类加载器已经可用并已填充。 如果发现重新启动对应用程序来说不够快,或者遇到类加载问题,可以考虑从ZeroTurnaround重载JRebel等技术。这些工作是在加载类时重写类,以使它们更易于重新加载。

4、日志报告功能
使用spring-boot-devtools的app,在每次加载的时候,会在log中生成一个相关内容的报告。你可以通过spring.devtools.restart.log-condition-evaluation-delta=false来关闭该功能。

5、排除资源
默认,/META-INF/maven, /META-INF/resources, /resources, /static, /public, 或/templates下的文件修改不会触发重启,但是会导致动态重载。你可以通过spring.devtools.restart.exclude=static/**,public/**来设置排除
/static 和/public下文件的改变。

通过spring.devtools.restart.additional-exclude在保持默认设置的时候,添加额外的排除目录。

相关标签: springboot学习