Является ли OSGi излишним для модульных веб-проектов? - PullRequest
2 голосов
/ 09 февраля 2011

Я в основном разрабатываю большой веб-проект на Java, Maven и Spring. Однако существуют различные разновидности веб-проекта, которые создаются для конкретных потребностей клиентов. Например, если один клиент хочет страницу Twitter, а другой нет, мне нужно иметь возможность создать вид этого веб-проекта с этой страницей Twitter или без нее.

Я рассматривал оверлеи Maven и OSGi как два варианта. Наложения Maven обычно копируются при копировании ресурсов из базового наложения. Я рассматривал Spring OSGi Web как вариант, потому что они, кажется, находятся на правильном пути для модульной модуляции небольших фрагментов (контроллеров, представлений, JS / resources / images) для веб-проектов.

OSGi - это перебор? Это то, что мне нужно использовать? Есть ли что-то лучше?

Ответы [ 4 ]

1 голос
/ 09 февраля 2011

Вас могут заинтересовать Весенние ломтики . В основном это позволяет вам иметь фрагменты веб-приложения, развернутые в виде отдельных пакетов. В зависимости от сложности вашего общего предложения это может быть желательно.

Некоторое время я не смотрел на это всерьез, поэтому не слишком уверен в его текущем состоянии, хотя ожидаю, что оно значительно улучшилось с тех пор, как я в последний раз смотрел.

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

http://blog.springsource.com/2009/08/07/slices-menu-bar-screencast/

1 голос
/ 09 февраля 2011

OSGI отлично подходит, если вам нужно добавить / удалить непредвиденные функции (и код) во время выполнения (а не просто включить или отключить его), но в большинстве случаев это не требуется для веб-приложений.

Так что в вашем случае я бы порекомендовал использовать конфигурацию (файл) для включения или отключения функций, насколько это возможно. Это также имеет то преимущество, что вам нужна только одна ВОЙНА.

Чтобы решить проблему: «как поместить файл конфигурации в WAR», у вас есть несколько способов ( Различные файлы, которые будут упакованы в военный проект Maven ):

  • use maven environements - (хорошо, тогда у вас есть несколько WAR, но только они отличаются в файле конфигурации, и процесс сборки становится не таким медленным, потому что для каждой среды выполняется только процесс упаковки WAR )
  • сохранить конфигурацию вне WAR
  • сохранить конфигурацию вне WAR, например, в базе данных
0 голосов
/ 01 сентября 2013

https://github.com/griddynamics/banshun, что является модульным модулем Spring для osgi и поддерживает два понятия настройки.Он может извлекать и создавать экземпляры модулей (дочерние контексты) с помощью подстановочного знака, который называется настройкой времени сборки, подразумевая, что профиль maven создает необходимые оверлеи в WAR.Противоположным способом является настройка во время выполнения, когда необходимые модули определяются в соответствии со свойством.

0 голосов
/ 09 февраля 2011

Мэтт, как правило, старается иметь только одну версию вашего приложения и пытается управлять ей с помощью свойств конфигурации. Представьте себе, что происходит, когда у вас есть 10 клиентов, и у каждого есть несколько функций, но не у двух клиентов одинаковый набор функций.

...