Существует ли шаблон для динамически загружаемых модулей в Spring Boot?

My Spring Boot Application имеет систему управления контентом. Я хотел бы иметь возможность динамически загружать новые компоненты без необходимости перезапуска приложения. Примером компонента может быть загрузка нового компонента видеопроигрывателя или рекламного компонента. Каждый компонент, вероятно, будет содержать свои собственные контроллеры и представления.

Каким будет рекомендуемый шаблон для этого, и какова хорошая структура, чтобы помочь справиться с этим? OSGi вариант?

1 ответ

Боюсь, что нет 100% решения. Там может быть несколько вариантов; позвольте мне выделить следующие три:

  1. Есть фабрики Spring, способ (авто) конфигурировать ваши бины.

  2. Еще один интересный подход заключается в том, как Spring Boot обрабатывает расширения самостоятельно - имея собственные собственные стартеры начальной загрузки, как в этой статье: https://blog.codecentric.de/en/2014/11/extending-spring-boot-five-steps-writing-spring-boot-starter/ Spring -Boot-Starter /, в сочетании с фабриками Spring вы могли

  3. Наиболее плагиноподобным решением является проект spring-plugin-project. Однако, похоже, что поддерживается только загрузка, также отсутствуют некоторые другие функции, такие как управление версиями. Таким образом, вы, вероятно, должны построить его самостоятельно.

Таким образом, основная проблема может заключаться в выгрузке и обновлении этих вещей во время выполнения, что приводит меня к последнему наблюдению:

В целом у меня сложилось впечатление, что концепция наличия плагина немного работает против идеи Spring Boot, так как она разработана для микросервисных архитектур. Таким образом, добавленная функциональность (плагин), вероятно, скорее будет отдельным микросервисом (со своим собственным хранилищем), который будет организован шлюзом, здесь позвольте мне выделить проект JHipster на основе весенней загрузки, чтобы показать идею такой архитектуры.

Другие вопросы по тегам