Service provider interface
Service Provider Interface (SPI, Интерфейс поставщика услуг) это API, предназначенный для реализации или расширения третьей стороной. Его можно использовать для включения расширения каркаса и сменных компонентов.
Детали
Из документации Java:
Сервис — это хорошо известный набор интерфейсов и (обычно абстрактных) классов. Поставщик услуг — это конкретная реализация службы. Классы в поставщике обычно реализуют интерфейсы и подклассы классов, определённых в самой службе. Поставщики услуг могут быть установлены в реализации платформы Java в виде расширений, то есть файлов JAR, помещенных в любой из обычных каталогов расширений. Поставщиков также можно сделать доступными, добавив их в путь к классам приложения или с помощью других средств, специфичных для платформы.