Maison  >  Article  >  Java  >  Comment Spring Boot implémente le déploiement à chaud

Comment Spring Boot implémente le déploiement à chaud

angryTom
angryTomoriginal
2020-02-14 14:31:405732parcourir

Comment Spring Boot implémente le déploiement à chaud

Comment implémenter le déploiement à chaud dans Spring Boot

C'est une chose très simple d'implémenter le déploiement à chaud de code dans les modifications de code Spring Boot. peut être automatiquement déployer et redémarrer le projet.

1. Référencez la dépendance devtools

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

De cette façon, lorsqu'une classe Java est modifiée, elle sera mise à jour à chaud.

2. Déploiement à chaud de configuration personnalisée

La configuration suivante est destinée au déploiement à chaud de configuration personnalisée et n'a pas besoin d'être définie.

# 热部署开关,false即不启用热部署
spring.devtools.restart.enabled: true
# 指定热部署的目录
#spring.devtools.restart.additional-paths: src/main/java
# 指定目录不更新
spring.devtools.restart.exclude: test/**

3. Modification d'Intellij Idea

S'il s'agit d'une idée, vous devez modifier les deux endroits suivants :

1. ou recompilez manuellement le compilateur

Fichier > Paramètres > Compilateur-Build Project automatiquement

2. S'inscrire

ctrl + shift + alt + / > Registre > ; Vérifier l'autorisation automatique du compilateur lorsque l'application est en cours d'exécution

Notes

1. Les outils de développement de l'environnement de production seront désactivés, tels que la méthode java -jar ou la classe personnalisée. le chargeur, etc. sera reconnu comme un environnement de production.

2. Les applications packagées n'incluront pas devtools par défaut, sauf si vous désactivez l'attribut ExcludDevtools du plug-in SpringBoot Maven.

3. Thymeleaf n'a pas besoin de configurer spring.thymeleaf.cache : false, devtools le définira automatiquement par défaut, cliquez pour vous référer aux propriétés complètes.

Ce qui suit fait partie du code source pour la configuration automatique des outils de développement :

@Order(Ordered.LOWEST_PRECEDENCE)
public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostProcessor {
    private static final Map<String, Object> PROPERTIES;
    static {
        Map<String, Object> properties = new HashMap<String, Object>();
        properties.put("spring.thymeleaf.cache", "false");
        properties.put("spring.freemarker.cache", "false");
        properties.put("spring.groovy.template.cache", "false");
        properties.put("spring.mustache.cache", "false");
        properties.put("server.session.persistent", "true");
        properties.put("spring.h2.console.enabled", "true");
        properties.put("spring.resources.cache-period", "0");
        properties.put("spring.resources.chain.cache", "false");
        properties.put("spring.template.provider.cache", "false");
        properties.put("spring.mvc.log-resolved-exception", "true");
        properties.put("server.jsp-servlet.init-parameters.development", "true");
        PROPERTIES = Collections.unmodifiableMap(properties);
    }

4. Les outils de développement occuperont le processus Java dans le gestionnaire de ressources Windows et ne pourront pas être supprimés dans les outils de développement. ne doit être tué que manuellement, sinon après le redémarrage, le port sera sélectionné pour une liaison répétée et une erreur sera signalée.

Pour plus de contenu connexe, veuillez faire attention au Site Web PHP chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn