Concept
1. SPI est une interface de fournisseur de services intégrée au JDK. Il s'agit d'une implémentation tierce ou d'une API étendue fournie par Java, qui peut être utilisée pour permettre l'expansion du framework et le remplacement de composants.
Conventions spécifiques de Java SPI
Lorsqu'il se trouve sous le chemin de classe, un fichier nommé d'après l'interface de service est également créé dans le répertoire META-INF/services/ sous le chemin de classe. Ce fichier est la catégorie d'implémentation spécifique qui implémente cette interface de service.
Lorsqu'un programme externe assemble le module, vous pouvez trouver le nom de la catégorie d'implémentation spécifique via le fichier de configuration dans le package jar META-INF/services/, et charger l'instance pour terminer l'injection du module.
2. L’appelant peut activer, étendre ou remplacer la stratégie de mise en œuvre du framework en fonction des besoins réels.
Exemples courants :
L'interface de chargement du pilote de base de données implémente le chargement de classe.
La charge JDBC gère différents types de bases de données.
Chargement de la classe d'implémentation de l'interface de journalisation.
SLF4J charge les classes d'implémentation de journaux de différents fournisseurs.
Spring
Spring, SPI est largement utilisé, par exemple : la spécification Servlet3.0 implémente ServletContainerInitializer, la conversion de type automatique TypeConversionSPI (ConverterSPI, FormatterSPI) et ainsi de suite.
Les collections en Java sont principalement divisées en quatre catégories :
1. Liste : ordonnée, répétable ;
2. -répétable ;
4. Mappage de cartes : non ordonné, avec des clés uniques et des valeurs non uniques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!