Konzept
1. Der integrierte Dienstanbieter-Erkennungsmechanismus des JDK ist eine von Java bereitgestellte Implementierung oder erweiterte API, die zur Erweiterung des Frameworks und zum Austausch von Komponenten verwendet werden kann.
Spezifische Konventionen von Java SPI
Wenn es sich unter dem Klassenpfad befindet, wird auch eine nach der Serviceschnittstelle benannte Datei im Verzeichnis META-INF/services/ unter dem Klassenpfad erstellt. Diese Datei ist die spezifische Implementierungskategorie, die diese Serviceschnittstelle implementiert.
Wenn ein externes Programm das Modul zusammenstellt, können Sie den spezifischen Namen der Implementierungskategorie über die Konfigurationsdatei im JAR-Paket META-INF/services/ finden und die Instanz laden, um die Modulinjektion abzuschließen.
2. Der Aufrufer kann die Implementierungsstrategie des Frameworks je nach tatsächlichem Bedarf aktivieren, erweitern oder ersetzen.
Häufige Beispiele:
Die Schnittstelle zum Laden von Datenbanktreibern implementiert das Laden von Klassen.
JDBC-Last steuert verschiedene Arten von Datenbanken.
Laden der Implementierungsklasse der Protokollierungsschnittstelle.
SLF4J lädt Protokollimplementierungsklassen von verschiedenen Anbietern.
Spring
Spring, SPI wird häufig verwendet, zum Beispiel: Die Servlet3.0-Spezifikation implementiert ServletContainerInitializer, automatische Typkonvertierung TypeConversionSPI (ConverterSPI, FormatterSPI) und so weiter.
Sammlungen in Java sind hauptsächlich in vier Kategorien unterteilt:
Warteschlange: geordnet, wiederholbar;
Sammlung: nicht -wiederholbar;
4. Kartenzuordnung: ungeordnet, mit eindeutigen Schlüsseln und nicht eindeutigen Werten.
Das obige ist der detaillierte Inhalt vonWas ist Javas SPI?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!