English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot DevTools

Spring Boot DevTools

Spring Boot 1.3Ofrece otro módulo llamado Spring Boot DevTools. DevTools representa Herramienta de desarrollo El objetivo de este módulo es intentar y acortar el tiempo de desarrollo al usar aplicaciones Spring Boot. Spring Boot DevTools acepta cambios y reinicia la aplicación.

Podemos implementar DevTools en nuestro proyecto agregando las siguientes dependencias en el archivo pom.xml.

<dependency>
<groupId>org.springframework.boot</<groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime<scope >
</dependency>

Spring Boot DevTools功能

Spring Boot DevTools提供以下功能:

属性默认值 自动重启 LiveReload 远程调试隧道 远程更新和重新启动

属性默认值: : Spring Boot提供了模板技术 Thymeleaf ,其中包含属性 spring.thymeleaf.cache。。缓存并允许我们更新页面,而无需重新启动应用程序。但是在开发过程中设置这些属性总是会带来一些问题。

当我们使用spring-boot-devtools模块时,不需要设置属性。在Thymeleaf,Freemarker,Groovy模板的开发缓存期间,将自动禁用。

Nota: 如果我们不想在应用程序上应用属性默认值,可以在application.properties文件中将configprop: spring.devtools.add-properties []设置为false。

自动重启: 自动重启意味着重新加载Java类并在服务器端对其进行配置。服务器端更改后,它会动态部署,服务器会重新启动,并加载修改后的代码。它主要用于基于微服务的应用程序。Spring Boot使用 两种类型的ClassLoader:

不变的类(三分之二)已加载到基本ClassLoader中。 我们正在积极开发的类已加载到重新启动ClassLoader中。

应用程序重新启动时,重新启动的ClassLoader被丢弃,并填充了一个新的类。因此,基本的ClassLoader始终可用并已填充。

Podemos usar la propiedad spring.devtools.restart.enabled 设置为 来禁用服务器的自动重启。错误。

记住:

DevTools始终监视类路径资源。 触发重启的唯一方法是更新类路径。 DevTools需要单独的应用程序类加载器才能正常工作。默认情况下,Maven派生应用程序进程。 自动重新启动与 LiveReload一起很好地工作。 DevTools依赖于应用程序上下文的关闭挂钩在重新启动期间将其关闭。

LiveReload: El módulo Spring Boot DevTools incluye una herramienta llamada servidor integrado de LiveReload.La aplicación puede activar automáticamente el refresco del navegador siempre y cuando realicemos cambios en él. Recursos. Esto también se conoce como refresco automático。

Nota: podemos configurar la propiedad deshabilitar LiveReload, activaPara false。

ofrece extensiones para navegadores Chrome, Firefox y Safari. De manera predeterminada, LiveReload está activado. LiveReload trabaja en las siguientes rutas:

/META-INF/maven /META-INF/resources /recursos /estáticos /public /plantillas

También podemos desactivar la recarga automática en el navegador mediante la exclusión de las rutas anteriores. Por ejemplo:

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

Podemos usar la propiedad spring.devtools.restart.additional-paths para ver otras rutas adicionales.por ejemplo:

spring.devtools.restart.additional-paths=/path-to-folder

Si queremos excluir otras rutas y mantener las rutas predeterminadas, use la propiedad spring.devtools.restart.additional-exclude。por ejemplo:

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

Recuerda

Podemos ejecutar un servidor LiveReload a la vez. Asegúrate de que no haya otros servidores LiveReload en ejecución antes de iniciar la aplicación. si iniciamos múltiples aplicaciones desde el IDE, solo admite el primer LiveReload.

túnel de depuración remoto: Spring Boot puede túnelear JDWP (Java Debug Wire Protocol) directamente al aplicación a través de HTTP. Incluso puede desplegar la aplicación en puertos públicos80 y443proveedores de servicios en la nube de Internet.

actualización remota y reinicio: Otra técnica proporcionada por DevTools es: admite aplicaciones remotas actualizary reiniciar.monitorea los cambios en los archivos de la clase local y los envía al servidor remoto, luego reinicia. También podemos combinar esta función con LiveReload.

usar archivo de activación

Debido a los reinicios frecuentes, el reinicio automático a veces puede ralentizar el tiempo de desarrollo. Para resolver este problema, podemos usar una archivo de activación.。SpringBoot monitorea los archivos de activación y detecta las modificaciones en el archivo. Reinicia el servidor y recarga todos los cambios anteriores.

Podemos agregar propiedades spring.devtools.restart.trigger-file se implementa en nuestra aplicación para activar archivos.Es interno o externo. Por ejemplo:

spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/reiniciar-trigger.txt

Ejemplo de Spring Boot DevTools

Pasos1: Usar Spring Initializr https://start.spring.io/.

Pasos2: Proporcionar GrupoNombre y Artefacto ID. Hemos proporcionado el nombre del grupo com.w3codebox Y ID de artefacto spring-boot-devtools-example.

Pasos3: Añadir las siguientes dependencias: spring-boot-starter-web y spring-boot-devtools .

Pasos4: Hacer clic GenerarBotón. Descargará el proyecto Jar Archivo.

Pasos5: Extraer archivo Jar.

Pasos6: Importar la carpeta a STS.

Archivo-Importar-Proyecto Maven existente-Explorar-Seleccionar carpeta spring-boot-devtools-example-Completar

Después de la importación exitosa, podemos ver los siguientes directorios en la sección Package Explorer de STS.

Pasos7: Abrir SpringBootDevtoolsExampleApplication.java Y ejecútelo como una aplicación Java.

Luego, realice cualquier cambio (edite o elimine algunos archivos o código) en la aplicación y luego guarde los cambios realizados. Después de guardar los cambios, el servidor se reiniciará y obtendrá los cambios.