Maison > Java > javaDidacticiel > Spring-: Spring-Boot-Bootstraps-Behind-the Scenes

Spring-: Spring-Boot-Bootstraps-Behind-the Scenes

DDD
Libérer: 2025-01-29 16:13:08
original
538 Les gens l'ont consulté

spring-: spring-boot-bootstrapping-behind-the-scenes

Les applications de démarrage de printemps sont à l'origine de nombreuses étapes derrière le démarrage.

I. Étape d'application de démarrage de printemps

<.> 1.1 startup JVM et charge de classe principale

La machine virtuelle Java (JVM) démarre et charge la classe principale contenant la méthode

.
  • public static void main(String[] args) <.> 1.2 Exécution
  • Méthode

SpringApplication.run() Exécutez la méthode pour démarrer l'application Spring Boot. Ceci est le point d'entrée pour toutes les applications de démarrage Spring.

    <.> 1.3 Initialisation
  • SpringApplication.run()

Initialisation, y compris: SpringApplication Type d'application de jugement (web ou non -web).

Chargez la configuration de l'application et les attributs environnementaux.
  • Préparez-vous au contexte. SpringApplication
    • <.> 1.4 Préparer
  • Créez le contexte de l'application Spring, en tant que bean de gestion des conteneurs, configuration et dépendances.

S'il s'agit d'une application Web, utilisez le contexte basé sur le service (tel que ). ApplicationContext

<.> 1.5 charge
  • AnnotationConfigServletWebServerApplicationContext Chargez le bean
  • enregistré (modifiez le contexte avant le démarrage du contexte).

<.> 1.6 Détectez et appliquez ApplicationContextInitializer

  • Spring Analyse et chargez toute implémentation ApplicationContextInitializer, permettant aux auditeurs externes de recevoir des notifications de démarrage d'application.

<.> 1.7 Préparation de l'environnement (attributs, fichiers de configuration et configuration) SpringApplicationRunListener

Chargez des variables environnementales,
    ou
  • et paramètres de ligne de commande. SpringApplicationRunListener
  • Déterminez l'activité et le fichier de configuration par défaut.

<.> 1.8 Rafraîchir le contexte

  • Le contexte est complètement rafraîchi, notamment: application.properties application.yml La courroie de balayage comprend des catégories d'annotations
  • ,
  • ,
  • et
.

Instancié Bean et gérez son cycle de vie.

Injection de dépendance aux applications et relation de dépendance analytique.
    • @Component <.> 1.9 Démarrez le serveur Web intégré (le cas échéant) @Service @Repository @Controller
    • S'il s'agit d'une application Web, Spring Boot démarre automatiquement le serveur Web intégré (Tomcat, Jetty ou Undertow).
    • Server Web Surveiller la demande de passage du port spécifié.
    <.> 1.10 Exécuter
  • et
bean

S'il y a un bean de
    ou
  • , ils les exécutent.
  • Ces haricots sont utilisés pour exécuter la logique d'initialisation après le début de l'application.

<.> 1.11 déclenche incident CommandLineRunner ApplicationRunner

  • Trigger événement, indiquant que l'application a été complètement démarrée et préparée pour la demande. ApplicationReadyEvent
<.> 1.12 Conserver le fonctionnement de l'application (pour les applications Web)

Pour les applications Web, l'application continue de fonctionner, en attendant que la demande HTTP soit introduite.
  • Pour les applications non web, sortez après l'exécution de la logique de l'initialisation.
  • 2. Ordre d'exécution de la logique: bref aperçu

Afin de se souvenir du processus de démarrage, il peut être considéré comme trois étapes principales:

1️🎜 Pendant le stade de guidage

JVM Démarrez l'application.

Exécuter .
  • Préparer l'environnement et la configuration.
  • SpringApplication.run() 2️🎜 L'étape d'initialisation du contexte
Créer et rafraîchir le contexte.

scanner, créer et injecter du bean.

S'il s'agit d'une application Web, démarrez le serveur intégré.
  • 3️🎜 Après le démarrage,
  • exécuter et
.

L'application est entièrement en cours et attend la demande. ?

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal