Kurzer Hintergrund: Ich arbeite an der Entwicklung einer Schnittstelle, die von mir und anderen Entwicklern implementiert wird. Über diese Schnittstelle können Benutzer neuen Funktionscode zur neuen Verwendung in ein System "einstecken". Dieser neue Code wird von einem bereits laufenden Server / einer bereits laufenden Anwendung aufgerufen. (TLDR: Ich muss die Fähigkeit entwickeln, Plugins im laufenden Betrieb in meiner Anwendung zu installieren.)
Alle Arbeiten, die ich bisher mit Schnittstellen durchgeführt habe, waren für interne Codierungszwecke gedacht, um nicht nach außen gerichtet zu werden. Die einzige Möglichkeit, die ich mir vorstellen kann, um Benutzern das Einfügen neuer Code-Implementierungsschnittstellen zu ermöglichen, besteht darin, dass der Benutzer eine JAR-Datei mit der implementierenden Klasse verknüpft und deren Klassensignatur für den Aufruf definiert. Dies scheint etwas zu sein, was schon einmal gemacht wurde. Ich war einfach noch nie mit der Codierungsseite konfrontiert.
Gibt es ein Framework, mit dem ich dieses Plugin für neuen Java-Code zur Laufzeit von Servern / Anwendungen zulassen kann? Ich habe bereits APIs verwendet, aber in mehr Webdiensten wird deutlich, wo Sie einen Dienst nutzen und keine Kernschnittstelle "implementieren".
Als Referenz verwende ich ein Java-Backend mit Spring als Hauptanwendung.