Saltar al contenido principal

Spring DevTools

Abrir en ChatGPT

Spring DevTools proporciona reinicios automáticos de la aplicación cuando se producen cambios en el código. webforJ DevTools agrega 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 generan 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.

Comprendiendo webforJ DevTools

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

Comportamiento de recarga

Diferentes tipos de archivos generan 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 in situ 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-recarga del navegador en 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 (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 caliente para recursos estáticos (por defecto: true)
webforj.devtools.livereload.static-resources-enabled=true

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

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

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