Antecedentes rápidos: estoy trabajando en el desarrollo de una interfaz que será implementada por mí y otros desarrolladores. Esta interfaz permitirá a los usuarios "agregar" un nuevo código funcional a un sistema para un nuevo uso. Este nuevo código se llamará desde un servidor / aplicación que ya se está ejecutando. (TLDR: necesito desarrollar la capacidad de instalar complementos en mi aplicación sobre la marcha)
Todo el trabajo que he hecho con las interfaces hasta ahora ha sido para fines de codificación interna, no para ser expuesto al exterior. La única forma en que puedo pensar para permitir que los usuarios complementen nuevas interfaces de implementación de código sería que el usuario de alguna manera enganche un archivo JAR que contenga la clase de implementación y de alguna manera defina su firma de clase para la llamada. Esto parece algo que se ha hecho antes, simplemente nunca he estado expuesto al lado de la codificación.
¿Existe un marco que podría usar para permitir este complemento de código Java nuevo durante el tiempo de ejecución del servidor / aplicación? He usado API antes, pero en una mayor parte del servicio web expongo el sentido de que estás consumiendo un servicio y no "implementando" alguna interfaz central.
Como referencia, estoy usando un backend de Java, con Spring para la aplicación principal.