Пружинный механизм, аналогичный точке расширения OSGI / Eclipse - PullRequest
2 голосов
/ 10 января 2012

Мы написали каркас, который использует пружину под капотом.Эта структура используется двумя приложениями.Можно настроить рабочий сервер с запущенным приложением1 ИЛИ приложением2 ИЛИ приложением1 и приложением 2.

Теперь я ищу пружинный механизм, который работает аналогично идее точки расширения OSGI, чтобы каждое приложение могло «внести свой вклад».к платформе без файла конфигурации, где должны быть перечислены все приложения.

Полная структура проекта (упрощенная; -)):

Каркас: A, IPlugin, A.xml

Приложение 1: B расширяет IPlugin, b.xml

Приложение 2: C расширяет IPlugin, c.xml

Explenation: «A» использует список IPllugin, который будет вызываться, если aконкретная задача должна быть достигнута.

Я нашел только весенний способ объявления A в качестве прототипа и установки «B» и «C» в качестве атрибутов.Поэтому я должен перечислить оба явно в A.xml.Но я хочу настроить вклады в b.xml и c.xml.

Вопросы:

  • Есть ли возможность весной измениться, если экземпляр специальногосоздается боб?

  • Есть ли что-то похожее на точку расширения OSGI / Eclipse весной из коробки?

  • Любое другоепредложения?

Ответы [ 3 ]

0 голосов
/ 11 января 2012

Другие предложили использовать OSGi с Spring-DM или Blueprint.Если вы решите, что это именно то, что вы хотите сделать - и я сам не уверен в этом, потому что я не совсем понял описание проблемы - тогда вы сможете внедрить каркас OSGi в существующее приложение (да, дажевнутри Tomcat ...).

Я написал сообщение в блоге о том, как встроить OSGi, что может помочь вам начать работу.Но сначала проверьте, действительно ли OSGi с Spring-DM - ​​это то, что вам нужно, и задайте дополнительные вопросы, если вам нужна помощь в принятии этого решения.

0 голосов
/ 21 марта 2012

Мое решение состояло в том, чтобы создать «реестр» в рамках проекта, который будет создан весной с областью действия «синглтон». Таким образом, каждый плагин может внести свой вклад в этот реестр, потому что он доступен для всех плагинов во время выполнения сервера приложений. Поскольку каждый плагин должен быть создан новым, я использовал помощь фабрики, которая создает новые экземпляры плагинов из spring-context.

Более подробную информацию можно найти в небольшой статье, которую я написал и которую можно загрузить

0 голосов
/ 10 января 2012

Взгляните на Spring Dynamic Modules . Первая строка введения говорит само за себя:

Проект Spring Dynamic Modules для OSGi (tm) Service Platforms позволяет легко создавать приложения Spring, работающие в среде OSGi

...