Maison  >  Article  >  Java  >  Quelles sont les deux méthodes de déploiement à chaud de Springboot ?

Quelles sont les deux méthodes de déploiement à chaud de Springboot ?

王林
王林avant
2023-06-03 11:51:27735parcourir

La différence entre springboot et springmvc

spring boot intègre des conteneurs Tomcat, Jetty et Undertow, qui peuvent être exécutés directement sans aucun déploiement supplémentaire #🎜🎜 ; #

configuration automatique de Spring Boot, réduisant un grand nombre de configurations de fichiers XML ; réduisant la complexité de la construction du projet

Spring MVC est un framework MVC basé sur Servlet Il résout principalement les problèmes de. Développement WEB, car Spring La configuration est très complexe et le traitement de divers XML, JavaConfig et hin est fastidieux. Par conséquent, afin de simplifier l'utilisation des développeurs, Spring Boot a été lancé de manière créative. La convention est meilleure que la configuration, ce qui simplifie le processus de configuration de Spring.

Spring est un "moteur"

Spring MVC est un framework MVC basé sur Spring

Spring Boot est enregistré selon les conditions de Spring4 Un ensemble de packages d'intégration de développement rapide.

Deux façons de déployer à chaud Springboot

SpringBoot 1.3 n'a que le déploiement à chaud des outils de développement SpringBoot

① : spring- boot-devtools ② : Spring Loaded

Méthode 1 :

Ajouter des dépendances dans le fichier pom du projet :

 <!--热部署jar-->
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-devtools</artifactId>
 </dependency>
Ensuite : utilisez shift +ctrl+ alt+"/" (touche de raccourci dans IDEA) Sélectionnez "Registre", puis vérifiez compiler.automake.allow.when.app.running

Méthode 2 :

#🎜🎜 #Ajoutez ce qui suit code au projet

 <build>
 <plugins>
  <plugin>
  <!-- springBoot编译插件-->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <dependencies>
   <!-- spring热部署 -->
   <!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 -->
   <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>springloaded</artifactId>
   <version>1.2.6.RELEASE</version>
   </dependency>
  </dependencies>
  </plugin>
 </plugins>
 </build>

Après l'avoir ajouté, vous devez utiliser la commande mvn pour exécuter :

Recherchez d'abord les configurations d'édition dans IDEA, puis procédez comme suit : ( Cliquez sur le coin supérieur gauche "+", puis sélectionnez maven et le panneau de droite apparaîtra. Entrez la commande comme indiqué dans la zone soulignée en rouge. Vous pouvez nommer la commande (nommée ici MvnSpringBootRun))

. Cliquez pour enregistrer. Il apparaîtra dans la section en cours d'exécution du projet IDEA, cliquez sur la flèche verte pour l'exécuter. un fichier de configuration global : Il en existe principalement deux types :

application.

properties

: Exemple : server.port=9998application.#🎜 🎜#yml#🎜 🎜#(YAML) : Exemple : serveur :

        Port :8080

La fonction du fichier de configuration est principalement de modifier la configuration par défaut sous-jacente de Spring boot#🎜🎜 #Annotations principales de Spring Boot

L'annotation sur la classe de démarrage est @SpringBootApplication, qui est également l'annotation principale de Spring Boot. La combinaison principale comprend les 3 annotations suivantes : #🎜 🎜#@SpringBootConfiguration : combine l'annotation @Configuration pour implémenter la fonction du fichier de configuration.

@EnableAutoConfiguration : activez la fonction de configuration automatique et vous pouvez également désactiver une option de configuration automatique, telle que la désactivation de la fonction de configuration automatique de la source de données : @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class } ).

@ComponentScan : Analyse des composants Spring.

Le principe d'exécution du Spring Boot Starter

L'utilisation de Starter pour réaliser une configuration automatisée ne nécessite que deux conditions - dépendance maven, Configuration fichier, voici une brève introduction au processus de configuration automatique du démarreur.

Présenter Maven consiste essentiellement à importer le package jar. Lorsque Spring-boot démarre, il trouvera le fichier resources/META-INF/spring.factories dans le package jar de démarrage. Selon la configuration du fichier spring.factories, il trouvera le besoin d'une configuration automatique. La classe

La différence entre Spring Boot et Spring MVC


#🎜🎜 #Spring Boot est l'intégration de Spring et Spring MVC, et Spring MVC n'est qu'un module de Spring, un framework de couche Web léger

Spring Boot peut atteindre une configuration presque nulle , et toutes les fonctions sont développées et appliquées à l'aide d'annotations. Il adopte l'idée de « convention plutôt que de configuration » et simplifie la difficulté du développement de projets

, alors que Spring MVC a besoin s'appuyer sur la configuration XML pour le développement

# 🎜🎜#
    Spring Boot est livré avec un Tomcat intégré, qui peut être exécuté directement après avoir été emballé dans un package jar, ou vous pouvez choisir utiliser un Tomcat externe
  1. Spring Boot Il hérite également de nombreuses configurations de bibliothèques tierces, telles que JDBC, Mongo, Redis, etc. Lors de l'application de ces bibliothèques tierces , vous pouvez configurer une configuration quasi nulle
  2. springcloud Quel est le principe de l'enregistrement et de la découverte du service 🎜🎜#

    Après ? chaque nœud est démarré, il sera enregistré dans EurekaServer. De cette manière, le registre de services dans EurekaServer stockera les informations de tous les nœuds de service disponibles. Les informations des nœuds de service peuvent être affichées intuitivement dans l'interface. 🎜🎜#EurekaClient est un client Java utilisé pour simplifier l'interaction avec Eureka Server. Le client dispose également d'un équilibreur de charge intégré qui utilise un algorithme de charge à tour de rôle. Après le démarrage de l'application, un battement de cœur sera envoyé au serveur Eureka (la période par défaut est de 30 secondes). Si Eureka Server ne reçoit pas le battement de cœur d'un nœud au cours de plusieurs cycles de battement de cœur, EurekaServer supprimera le nœud de service du registre de service (90 secondes par défaut)
  3. Eureka Trois rôles principaux : #🎜 🎜#

  4. Eureka Server permet l'enregistrement et la découverte du service

Service Provider Le fournisseur de services lui-même Le service est enregistré auprès d'Eureka , afin que le consommateur du service puisse trouver

Service Consommateur Le consommateur du service obtient la liste des services enregistrés d'Eureka, afin qu'il puisse consommer le service

En tant que centre d'enregistrement de services, les avantages d'Eureka et Zookeeper :

La célèbre théorie CAP souligne qu'il est impossible pour un système distribué de satisfaire C (cohérence), A (disponibilité) et P (tolérance aux pannes de partition ) en même temps. Puisque la tolérance aux pannes de partition P doit être garantie dans un système distribué, nous ne pouvons faire qu'un compromis entre A et C.

Donc

  • Zookeeper garantit CP,

  • Eureka est AP

La différence entre # et $ dans mybatis

# équivaut à ajouter des guillemets doubles aux données, $ Équivalent à afficher les données directement

  • Les données entrantes seront traitées comme une chaîne et ajoutées avec des guillemets doubles. Par exemple : trier par #user_id#, si la valeur transmise est 111, alors la valeur analysée dans SQL est triée par "111". Si la valeur transmise est id, le SQL analysé est trié par "id".

  • $ affiche directement les données entrantes et les génère en SQL. Par exemple : order by $user_id$, si la valeur transmise est 111, alors la valeur analysée dans SQL est order by user_id. Si la valeur transmise est id, le SQL analysé est order by id

  • Méthode. 3# peut empêcher dans une large mesure l’injection SQL. La méthode

  • $ ne peut pas empêcher l'injection SQL. La méthode

  • $ est généralement utilisée pour transmettre des objets de base de données, tels que des noms de tables.

  • En général, si vous pouvez utiliser #, n'utilisez pas $.

Vous devez faire attention lors de l'utilisation. trier par paramètres dynamiques lors du tri de MyBatis. Remplacez


par $ au lieu de #


Par défaut, l'utilisation de la syntaxe de format #{} amènera MyBatis à créer une propriété d'instruction préparée et à définir une valeur sûre (telle que ?) pour celle-ci. il. C'est sûr, rapide et préféré, parfois vous souhaitez simplement insérer une chaîne inchangée directement dans l'instruction SQL. Par exemple, comme ORDER BY, vous pouvez l'utiliser comme ceci :

ORDER BY ${columnName}

Ici, MyBatis ne modifiera ni n'échappera la chaîne.

Comment Redis élimine les données

  1. volatile-lru : sélectionnez les données les moins récemment utilisées dans l'ensemble de données (server.db[i].expires) avec un délai d'expiration défini pour les éliminer

  2. volatile- ttl : sélectionnez les données à expirer dans l'ensemble de données (server.db[i].expires) qui a défini le délai d'expiration et éliminez-les

  3. volatile-random : sélectionnez l'ensemble de données qui a le délai d'expiration (serveur .db[i].expires) ) Sélectionnez aléatoirement les données à éliminer

  4. allkeys-lru : sélectionnez les données les moins récemment utilisées dans l'ensemble de données (server.db[i].dict) pour éliminer

  5. allkeys- random : Sélectionnez dans l'ensemble de données (server.db) [i].dict) Sélectionnez aléatoirement les données à éliminer

  6. no-envivtion (eviction) : interdire l'expulsion des données

Mécanisme LRU :

redis enregistre le compteur lru server.lrulock, qui sera supprimé régulièrement Mise à jour (programme de minuterie redis severCorn()), chaque objet redis définira la valeur lru correspondante et redis mettra à jour redisObject.lru à chaque accès à l'objet.


Mécanisme d'élimination LRU : sélectionnez au hasard plusieurs paires clé-valeur dans l'ensemble de données et supprimez la paire clé-valeur avec le plus grand lru parmi elles pour l'élimination. Par conséquent, redis ne garantit pas que les données éliminées sont les moins récemment utilisées, mais qu'il s'agit de paires clé-valeur sélectionnées au hasard.

Mécanisme TTL :

Le calendrier d'expiration de la paire clé-valeur est enregistré dans la structure de l'ensemble de données redis, c'est-à-dire redisDb.expires.


Mécanisme d'élimination TTL : sélectionnez aléatoirement plusieurs paires clé-valeur dans l'ensemble de données et supprimez les paires clé-valeur les plus proches du délai d'expiration pour l'élimination. Par conséquent, redis ne garantit pas que les données éliminées sont les plus proches du délai d'expiration, mais les paires clé-valeur sélectionnées au hasard.

Redis détectera si la mémoire utilisée est excessive lorsque chaque client de service exécute une commande

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer