Uso de las herramientas de desarrollo Spring Boot
Spring-boot-devtools aporta mucha comodidad al desarrollo. Este artículo resume algunos de sus usos.
Para utilizar devtools, primero debe agregar dependencias de módulos. Maven y Gradle están configurados de la siguiente manera:
Maven:
Gradle:
Cuando se ejecuta una aplicación completamente empaquetada, las herramientas de desarrollo se desactivarán. Cuando se ejecuta utilizando java -jar o un cargador de clases especial, se tratará como un entorno de producción. Experto
Algunas de las bibliotecas de Spring Boot utilizarán el almacenamiento en caché para mejorar el rendimiento. Por ejemplo, el motor del módulo almacena en caché las plantillas compiladas para evitar el análisis repetido de archivos de plantilla; Spring MVC establece encabezados de caché HTTP cuando responde a recursos estáticos.
Habilitar el almacenamiento en caché es útil en un entorno de desarrollo, pero puede resultar contraproducente en un entorno de producción. Entonces, spring-boot-devtools deshabilitará el almacenamiento en caché de forma predeterminada en lugar de deshabilitarlo manualmente.
Al mismo tiempo, la herramienta de desarrollo también establecerá el nivel del registro web en DEBUG para que pueda ver información más detallada sobre solicitudes y respuestas. Si desea registrar todos los detalles de la solicitud (incluida la información potencialmente confidencial), puede habilitar Spring. http.log-request-detalles.
Si no desea utilizar la configuración predeterminada, puede establecer spring.devtools.add-properties en falso.
Las aplicaciones que utilizan spring-boot-devtools se reiniciarán automáticamente cuando se modifiquen los archivos en el classpath. Durante el desarrollo, esta será una característica útil ya que podrá ver rápidamente los cambios causados por sus modificaciones.
Debido a que DevTools monitorea los recursos de classpath, la única forma de activar un reinicio es actualizar el classpath. En Eclipse, el archivo se compilará automáticamente cuando se modifique y guarde de forma predeterminada, lo que activará una actualización de classpath, mientras que en IntelliJ, debe compilar el proyecto manualmente (compilar->compilar proyecto). Por supuesto, también puedes configurar la compilación automática en IntelliJ, pero no creo que sea necesario.
Devtools se reinicia a través de dos cargadores de clases. Para las clases que no se modificarán, como bibliotecas de terceros, utilice el cargador de clases base y las clases editadas por el usuario utilice el cargador de clases de reinicio. Cuando la aplicación se reinicia, el cargador de clases de reinicio se descartará y se creará un nuevo cargador de clases, que acelerará los reinicios. Si cree que reiniciar no es lo suficientemente rápido, puede considerar usar JRebel para implementar actualizaciones en caliente a través de clases sobrecargadas.
De forma predeterminada, se genera un informe de evaluación de condición incremental cada vez que se reinicia la aplicación. Este informe muestra cambios de configuración automáticos cuando se modifica la aplicación, como agregar o eliminar beans y propiedades de configuración.
Agregue la siguiente configuración para desactivar este registro:
Algunos recursos no necesitan activar un reinicio cuando se modifican. De forma predeterminada, al modificar recursos en /META-INF/maven, /META-INF/resources, /resources, /static, /public o /templates, no se activará un reinicio (pero se activará una recarga en vivo, ver más abajo). ).
Si desea personalizar los directorios que deben excluirse, puede configurarlos hasta la primavera. Propiedad devtools.restart.exclude (varios directorios separados por comas). Si desea mantener la configuración predeterminada y excluir otros directorios, puede configurarla hasta Spring.
herramientas de desarrollo. reiniciar atributo de exclusión adicional.
Se pueden configurar rutas adicionales para escuchar los cambios durante la primavera. herramientas de desarrollo. reiniciar rutas adicionales.
Si no desea utilizar la función de reinicio, puede configurarla hasta la primavera. propiedad devtools.restart.enabled. En la mayoría de los casos, se puede configurar directamente en application.properties. Si desea deshabilitar completamente el reinicio, debe configurar la propiedad del sistema spring.dev tools.restart.enabled en falso antes de llamar a SpringApplication.run(...):
Si utiliza un IDE que compila constantemente archivos modificados, es posible que prefiera activar un reinicio solo en momentos específicos. Podemos usar un "archivo activador", que es un archivo especial que debe modificarse cuando realmente queremos activar una verificación de reinicio. Cambiar archivos solo activa comprobaciones y solo se reiniciará si Devtools detecta que se debe realizar algo. Los archivos de activación se pueden actualizar manualmente o mediante un complemento IDE.
Establezca la propiedad spring .dev tools .restart-file en la ruta del archivo desencadenante.
El módulo Spring-boot-devtools contiene un servidor LiveReload integrado que se puede utilizar para activar una actualización del navegador cuando cambian los recursos. El navegador necesita instalar el complemento LiveReload.
Si no desea habilitar el servidor LiveReload, configure las propiedades del resorte. devtools.livereload.enabled es falso.
Solo se puede ejecutar un servidor LiveReload a la vez. Si inicia varias aplicaciones desde el IDE, solo la primera aplicación tiene la funcionalidad LiveReload.
Cree un archivo de propiedades . spring-boot-devtools en el directorio $HOME y agregue la configuración de herramientas de desarrollo globales en él. Cualquier propiedad agregada a este archivo se aplicará a todas las aplicaciones Spring Boot que utilicen devtools en esta máquina.