Heim  >  Artikel  >  Java  >  Was ist Javas SPI?

Was ist Javas SPI?

WBOY
WBOYnach vorne
2023-05-06 18:28:231580Durchsuche

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.

Welche Sammlungsklassen gibt es in Java?

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!

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