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

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在保持默认设置的时候,添加额外的排除目录。

发布了20 篇原创文章 · 获赞 0 · 访问量 508

猜你喜欢

转载自blog.csdn.net/weixin_43859070/article/details/104079555