Spring Boot支持热部署,这意味着在不重启应用程序服务器的情况下更新代码和资源。为了实现热部署,当前有两种流行的库:
(1)Spring Boot DevTools: 这是一个为开发者服务的一个模块,它提供了一系列的功能,比如自动重启应用、自动应用代码更改以及将内容放在缓存中以加快重启时的应用启动。
(2)JRebel: 这是一个商业工具,它提供了真正的全栈热部署,支持Spring Boot应用程序中的所有更改,包括对静态资源、视图、数据库模式等的更改。
DevTools 的原理
它使用了两个类加载器(Application ClassLoader 和 Restart ClassLoader)来重启应用。Application ClassLoader 负责加载应用的主要类和资源,而 Restart ClassLoader 负责加载那些可以被重新加载的类。当应用中的类文件发生变化时,Restart ClassLoader 会重新加载这些类,而 Application ClassLoader 加载的类则不会失效。这样应用就可以在不重启整个应用的情况下进行热部署。
如何引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
719

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



