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 la 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 desencadenan diferentes comportamientos de recarga. Los cambios en el código Java provocan un reinicio completo de Spring y una actualización del navegador. Las modificaciones en CSS e imágenes se actualizan sin recargar la página, preservando los datos del formulario y el estado de la aplicación.

Cambios en el frontend

Los cambios en src/main/frontend son gestionados por el frontend watch, que los recompila y actualiza el navegador junto con el servidor.

Comprendiendo webforJ DevTools

webforJ extiende 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 desencadenan diferentes estrategias de recarga:

  • Archivos Java: Recarga completa de la página del navegador después del reinicio de Spring
  • Archivos JavaScript: Recarga completa de la página del navegador después del reinicio de Spring
  • Archivos CSS: Actualizaciones de estilo sin recarga de la página
  • Imágenes: Actualización en su lugar sin recarga de la 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 tu archivo application.properties:

application.properties
# Habilitar auto-reload del navegador webforJ
webforj.devtools.livereload.enabled=true

# Habilitar 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 (default: 35730)
webforj.devtools.livereload.websocket-port=35730

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

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

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

25.03 Configurar la apertura del navegador al iniciar la aplicación:

application.properties
# Habilitar apertura del navegador (default: false)
webforj.devtools.browser.open=true

# localhost, nombre de host o dirección IP (default: localhost)
webforj.devtools.browser.host=localhost