Qu'est-ce que le déploiement chaud
Tout le monde sait que pendant le développement du projet, les données de la page ou la structure des données sont souvent modifiées. Afin d'afficher l'effet de changement, vous devez souvent redémarrer l'application pour afficher l'effet de changement. En fait, il s'agit d'un nouveau fichier de classe recompilé et généré. Ce fichier enregistre diverses informations correspondant au code, puis le fichier de classe sera chargé par le chargeur de classe de la machine virtuelle.
Le déploiement à chaud profite de cette fonctionnalité. Il écoute le fait que si le fichier de classe est modifié, il créera un nouveau Classloader pour charger le fichier. Après une série de processus, les résultats nous seront enfin présentés.
Mécanisme de chargement de classe
Le compilateur peut compiler le code dans un fichier de classe qui stocke Bytecode. Le fichier de classe stocke diverses informations et sera finalement chargé dans une machine virtuelle pour l'exécution et l'utilisation. Mécanisme de chargement de classe (extrait de "compréhension approfondie de la machine virtuelle Java") La machine virtuelle charge les données décrivant la classe du fichier de classe en mémoire, et vérifie, convertit, analyses et initialise les données, et forme enfin un type Java qui peut être utilisé directement par la machine virtuelle.
Spring Boot implémente le déploiement à chaud
Spring Boot implémente le déploiement à chaud de la manière suivante:
À ressort chargé
Cette méthode est chargée sous la forme d'un plug-in maven, il est donc démarré à l'aide de la commande maven mvn spring-boot:run au démarrage, mais il est démarré à l'aide d'application.run. Il n'est pas valide car le mécanisme de plug-in Maven a été contourné lors du démarrage de l'application.
Méthode d'intégration POM:
<Duild> <Glugins> <Glugin> <GroupId> org.springframework.boot </proncId> <Dependance> <Dendency> <proupId> org.springFramework </proupId> <Artifactid> Springled </pteridencd> <version> 1.2.5. </ plugin> </ plugin> </ plugins> </ build>
Spring-Boot-Devtools
Cette méthode peut être utilisée pour redémarrer l'application après avoir modifié le fichier.
Intégration POM:
<! - Module de déploiement à chaud -> <dependency> <proupId> org.springframework.boot </proupId> <ArtifACTID> printemps-boot-devtools </artifactive> <ochotéal> true </acultatif> <! - Cela nécessite un véritable déploiement chaud pour être efficace -> </Dedency>
Attention à l'intégration
#Shield Thymeleaf Cache (suggestion: l'environnement de développement est défini sur False, l'environnement de génération est défini sur true) printemps.thymeaf.cache = false
1. Pour Devtools, vous pouvez spécifier des répertoires ou exclure les répertoires pour le déploiement à chaud.
#Le fichier qui ajoute que le répertoire nécessite restartspring.devtools.restart.additional-paths = src / main / java # Le fichier qui exclut ce répertoire ne nécessite pas de restartspring.devtools.restart.exclure = static / **, public / **
Définir l'idée pour activer la modification du fichier pour redémarrer automatiquement le projet
1. Trouvez les préférences de l'idée -> build, exécution, déploiement -> compilateur, vérifiez automatiquement le projet de construction
2. Retour à l'interface normale de l'idée. Utilisez la touche de raccourci Shift + Option + Commande + / pour Mac. La touche de raccourci sur la fenêtre est Shift + Ctrl + Alt + /. Ouvrez le registre et vérifiez-le.
compiler.automake.allow.when.app.runningcompiler.automake.allow.when.app.running
Grâce aux paramètres ci-dessus, vous pouvez charger HTML sans redémarrer le service, mais si vous modifiez le fichier Java, le service redémarre automatiquement en quelques secondes. Si vous ne souhaitez pas que le service redémarre, vous devez ajouter spring.devtools.reatart.enable = false dans application.properties ou application.yml.
Résumer
Ce qui précède est le déploiement à chaud de Spring Boot Integrated Spring-Boot-Devtools que l'éditeur vous a présenté. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!