Saltar al contenido principal

Spring DevTools

Abrir en ChatGPT

Spring DevTools proporciona reinicios automáticos de la aplicación cuando hay cambios en el código. webforJ DevTools añade una actualización automática del navegador: cuando Spring reinicia tu aplicación, el navegador se actualiza automáticamente a través del servidor LiveReload de webforJ.

Diferentes tipos de archivos activan diferentes comportamientos de recarga. Los cambios en el código Java provocan un reinicio completo de Spring y una actualización del navegador. Los cambios en CSS e imágenes se actualizan sin recargar la página, preservando los datos del formulario y el estado de la aplicación.

Entendiendo webforJ DevTools

webforJ amplía Spring DevTools con sincronización del navegador. Cuando Spring detecta cambios en los archivos y reinicia, webforJ DevTools actualiza automáticamente tu navegador.

Comportamiento de recarga

Diferentes tipos de archivos activan diferentes estrategias de recarga:

  • Archivos Java - Recarga completa de la página del navegador después del reinicio de Spring
  • Archivos CSS - Actualizaciones de estilo sin recarga de página
  • Archivos JavaScript - Recarga completa de la página del navegador después del reinicio de Spring
  • Imágenes - Actualización en su lugar sin recarga de página

Dependencias

Agrega tanto Spring DevTools como webforJ DevTools a tu proyecto:

pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-spring-devtools</artifactId>
<version>${webforj.version}</version>
<optional>true</optional>
</dependency>

Configuración

Habilita webforJ DevTools en las propiedades de tu aplicación:

application.properties
# Habilitar la recarga automática del navegador webforJ
webforj.devtools.livereload.enabled=true

# Habilitar el apagado inmediato para reinicios más rápidos
server.shutdown=immediate

Configuración avanzada

Configura la conexión WebSocket y el comportamiento de recarga:

application.properties
# Puerto del servidor WebSocket (por defecto: 35730)
webforj.devtools.livereload.websocket-port=35730

# Ruta del endpoint WebSocket (por defecto: /webforj-devtools-ws)
webforj.devtools.livereload.websocket-path=/webforj-devtools-ws

# Intervalo de latido en milisegundos (por defecto: 30000)
webforj.devtools.livereload.heartbeat-interval=30000

# Habilitar recarga en caliente para recursos estáticos (por defecto: true)
webforj.devtools.livereload.static-resources-enabled=true