Le chargement du BootstrapContext
Spring Boot commence par initialiser le BootstrapContext qui est un mini contexte Spring temporaire épuré pour la phase d’initialisation. Le BootstrapContext a été introduit avec Spring Boot version 2.4 pour faciliter la mise en œuvre des modules Spring Cloud. Il permet au framework de préparer le contexte de l’application. Ce contexte se base sur deux interfaces : BootstrapRegistry qui gère les écritures dans le contexte et BootstrapContext qui gère la partie lecture.
BootstrapRegistry : enregistrement de la classe dans le contexte via la méthode register.
BootstrapContext : chargement de la classe dans le contexte via la méthode get(Class <T> type).
Ce contexte est plus simple car il ne permet d’associer qu’une seule classe à un type.
Exemple d’utilisation :
//Ecriture dans le contexte :
bootstrapContext.register(MaClasse.class,
InstanceSupplier.from(MaClasse::new).withScope(Scope.SINGLETON)) ;
Lecture dans le contexte :
Un fois Spring démaré, Spring appelle le addCloseListener du bootstrap context pour enregistrer les beans dans le vrai contexte Spring de l’application.
Une fois le contexte chargé, Spring prépare le listener de démarrage pour gérer la partie événementielle.