春天DevTools怎么在引导中使用

  介绍

DevTools怎么在春天引导中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

DevTools通过提供自动重启和LiveReload功能,使您更快,更轻松地开发弹簧引导应用程序。除此之外,它还将各种属性设置为更适合本地开发的值。此外,它允许您远程连接到您的应用程序,并仍然使用其大部分功能。在生产中运行时,不要使用DevTools。

如果您使用Maven:

& lt; dependency>   ,& lt; groupId> org.springframework.boot   ,& lt; artifactId> spring-boot-devtools   ,& lt; optional> true   & lt;/dependency>

或者,使用Gradle时:

configurations  {   ,developmentOnly   ,runtimeClasspath  {   extendsFrom  developmentOnly才能   ,}   }   dependencies  {   ,developmentOnly (“org.springframework.boot: spring-boot-devtools")   }

依赖项声明为可选。这个很重要。这可以防止DevTools依赖性传递性地应用于依赖于你项目的其他模块。

<>强自动重启

每当类路径中的文件发生更改时,DevTools会自动重新启动正在运行的应用程序,并应用新的更改。在本地开发时,这可能很有价值,因为您不需要手动重新部署应用程序。

重启仍然需要花费很多时间,你可能认为它不会那么有,用。幸运的是,这些重启比常规重启更快,因为DevTools使用了一个聪明的技巧。

在开发应用程序时,您通常会更改一个或多个类,并希望检查正在运行的应用程序中的结果以获得反馈。您更改应用程序的一小部分,因为大多数加载的类来自框架和第三方库。

,春天DevTools使用两个类加载器——基地和restart.base类加载器加载不更改的类。你正在使用的类由重启类加载器加载。每当触发重启时,都会重新启动并重新创建重启的类加载器。这样重新启动应用程序的速度比平常快得多,并且可以使用JRebel等工具作为动态类重新加载的替代方法。

<强>在IDE中触发重新启动

只要类路径发生更改,就会触发重新启动。但是,这取决于您的IDE。这意味着,仅仅更改. java文件是不够的。重要的是您的IDE实际上更新。类了类路径上的文件。

使用IntelliJ IDEA时,您需要构建项目(Ctrl + F9或构建→构建项目)。您还可以将想法配置为自动重建。或者,需要打开弹簧引导运行配置并定义触发应用程序更新时发生的情况,Alt + Shift + F10或F9进行运行配置,选择编辑配置:

在更新行动中选择更新触发器文件,在调用更新操作时触发DevTools的重启,甚至可以选择尝试热插拔的选项,并仅在热插拔失败时使用DevTools重新启动。

在在失活中帧选择更新类和资源。在想法窗口失去焦点时重新加载所有静态资源和模板(例如,切换到浏览器窗口时)。

确认后,修改源码,切换到浏览器,刷新浏览器,可以看到更新后的结果,如果还不行按(Ctrl + F10)强行更新重启。

仅限开发

弹簧引导DevTools的用法仅用于开发,而不用于生产。如果您的应用程序检测到您正在生产中运行,则会自动禁用DevTools。

部署时有两种模式:工件完全打包完全打包和爆炸工件;采取前者打包方式弹簧会认为是生产应用,后者认为是开发模式,在想法等IDE中采取的是后者。

<强>生活重载

LiveReload是一个有用的工具,它允许您在文件中进行更改时立即在浏览器中更新页面,如HTML, CSS,图像等。它甚至可以根据需要预处理文件——这意味着自动编译SASS或少文件。

春DevTools自动启动LiveReload服务器的本地实例,该服务器监视您的文件。您需要做的就是安装一个浏览器扩展,然后你就可以了。它不仅可用于开发应用程序的前端(如果将其作为春天应用程序工件的一部分进行分发),还可用于监视和重新加载REST API的输出。

<强>属性覆盖

在本地开发应用程序时,与在生产环境相比通常需要不同的配置。自己管理多组配置是不必要的复杂。好消息是弹簧引导DevTools为您的本地开发配置了许多开箱即用的属性。

spring.thymeleaf.cache=false   spring.freemarker.cache=false   spring.groovy.template.cache=false   spring.mustache.cache=false   server.servlet.session.persistent=true   spring.h3.console.enabled=true   spring.resources.cache.period=0   spring.resources.chain.cache=false   spring.template.provider.cache=false   spring.mvc.log-resolved-exception=true   server.servlet.jsp.init-parameters.development=true   spring.reactor.stacktrace-mode。启用=true

春天DevTools怎么在引导中使用