Passer au contenu principal

Spring DevTools

Ouvrir dans ChatGPT

Spring DevTools fournit des redémarrages automatiques de l'application lors des changements de code. webforJ DevTools ajoute un rafraîchissement automatique du navigateur : lorsque Spring redémarre votre application, le navigateur se rafraîchit automatiquement via le serveur LiveReload de webforJ.

Différents types de fichiers déclenchent des comportements de rechargement différents. Les changements de code Java entraînent un redémarrage complet de Spring et un rafraîchissement du navigateur. Les changements de CSS et d'images se mettent à jour sans rechargement de la page, préservant les données du formulaire et l'état de l'application.

Changements Frontend

Les changements sous src/main/frontend sont gérés par le frontend watch, qui les reconstruit et rafraîchit le navigateur en même temps que le serveur.

Comprendre webforJ DevTools

webforJ étend Spring DevTools avec une synchronisation du navigateur. Lorsque Spring détecte des changements de fichiers et redémarre, webforJ DevTools rafraîchit automatiquement votre navigateur.

Comportement de rechargement

Différents types de fichiers déclenchent différentes stratégies de rechargement :

  • Fichiers Java : Rechargement complet de la page du navigateur après le redémarrage de Spring
  • Fichiers JavaScript : Rechargement complet de la page du navigateur après le redémarrage de Spring
  • Fichiers CSS : Mises à jour de style sans rechargement de la page
  • Images : Rafraîchissement sur place sans rechargement de la page

Dépendances

Ajoutez à votre projet à la fois Spring DevTools et webforJ DevTools :

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>

Configuration

Activez webforJ DevTools dans votre fichier application.properties :

application.properties
# Activer le rechargement automatique du navigateur webforJ
webforj.devtools.livereload.enabled=true

# Activer l'arrêt immédiat pour des redémarrages plus rapides
server.shutdown=immediate

Configuration avancée

Configurez la connexion WebSocket et le comportement de rechargement :

application.properties
# Port du serveur WebSocket (par défaut : 35730)
webforj.devtools.livereload.websocket-port=35730

# Chemin d'endpoint WebSocket (par défaut : /webforj-devtools-ws)
webforj.devtools.livereload.websocket-path=/webforj-devtools-ws

# Intervalle de pulsation en millisecondes (par défaut : 30000)
webforj.devtools.livereload.heartbeat-interval=30000

# Activer le rechargement à chaud pour les ressources statiques (par défaut : true)
webforj.devtools.livereload.static-resources-enabled=true

25.03 Configurez l'ouverture du navigateur au démarrage de l'application :

application.properties
# Activer l'ouverture du navigateur (par défaut : false)
webforj.devtools.browser.open=true

# localhost, nom d’hôte ou adresse IP (par défaut : localhost)
webforj.devtools.browser.host=localhost