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
Im Folgenden wird die Rolle dieser erläutert Drei Anmerkungen im gesamten automatischen Montageprozess.
1, @SpringBootConfiguration
2, @ComponentScan
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })@Import(AutoConfigurationImportSelector.class)1. Verwenden Sie getAutoConfigurationEntry(annotationMetadata);, um den Container zu stapeln Importieren Sie einige Komponenten
2. Rufen Sie List
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#🎜 🎜#Alle 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!