Heim  >  Artikel  >  Java  >  Analyse der Prinzipien der automatischen SpringBoot-Konfiguration

Analyse der Prinzipien der automatischen SpringBoot-Konfiguration

WBOY
WBOYnach vorne
2023-05-23 16:07:061320Durchsuche

Initialisieren Sie ein Springboot-Projekt. Es wird eine solche Annotation in der Hauptstartklasse geben: @SpringBootApplication. Das Geheimnis der automatischen Assemblierung liegt in der Annotation der Hauptstartklasse Eine Ebene und Sie finden drei. Es besteht aus Unteranmerkungen, nämlich @SpringBootConfiguration, @ComponentScan und @EnableAutoConfiguration

Analyse der Prinzipien der automatischen SpringBoot-KonfigurationIm Folgenden wird die Rolle dieser erläutert Drei Anmerkungen im gesamten automatischen Montageprozess.

1, @SpringBootConfiguration

Klicken Sie hinein und stellen Sie fest, dass es sich um @Configure handelt Dies bedeutet natürlich, dass die aktuelle Hauptstartklasse eine Konfigurationsklasse ist. Im Spring-Container ist es praktisch, beim Start andere Objekte zu verwalten.

2, @ComponentScan

Geben Sie an, welche Spring-Annotationen gescannt werden sollen Der Quellcode wird in diesem Fall ausgeschlossen. 🎜🎜#Automatisches Konfigurationspaket? Die Standardpaketregel ist angegeben

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

@Import(AutoConfigurationImportSelector.class)

Analyse der Prinzipien der automatischen SpringBoot-Konfiguration

1. Verwenden Sie getAutoConfigurationEntry(annotationMetadata);, um den Container zu stapeln Importieren Sie einige Komponenten

2. Rufen Sie List auf, um alle Konfigurationsklassen abzurufen, die in den Container importiert werden müssen

3. Verwenden Sie die Factory, um Map > loadSpringFactories(@Nullable ClassLoader classLoader); Laden Sie eine Datei vom Speicherort META-INF/spring.factories.

Standardmäßig werden alle Dateien im Speicherort META-INF/spring.factories in unserem aktuellen System gescannt.

Das Paket spring-boot-autoconfigure-2.3.4.RELEASE.jar enthält auch META-INF/ spring.factories#🎜 🎜#

Analyse der Prinzipien der automatischen SpringBoot-KonfigurationAlle Konfigurationsklassen, die Spring-Boot beim Start in den Container lädt, werden in die Datei geschrieben

@Override
    public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)
            throws IOException {
        // 
        if (this.beanFactory instanceof ListableBeanFactory && getClass() == TypeExcludeFilter.class) {
            for (TypeExcludeFilter delegate : getDelegates()) {
                if (delegate.match(metadataReader, metadataReaderFactory)) {
                    return true;
                }
            }
        }
        return false;
    }

Das obige ist der detaillierte Inhalt vonAnalyse der Prinzipien der automatischen SpringBoot-Konfiguration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen