Представьте, что вы хотите иметь высокомодульное веб-приложение на Java. Компоненты уже используют Spring framework. Некоторые компоненты охватывают только чистую логику, а некоторые другие также имеют некоторые графические интерфейсы презентации в HTML. Приложение не совместимо с Portlet, но нам нужно иметь динамическое меню, которое продвигает список установленных модулей и ссылок на страницы или API REST. Так как это Java, используя OSGI рекомендуется, но я слишком путать с недавними признаками в OSGI (введено за последние несколько лет) и у меня есть несколько вопросов:Использование встроенного Felix в контейнере приложений или контейнере приложений в Karaf и является OSGi полным контейнером IoC?
Теперь OSGI не только Модуль системы управления, но и IoC Контейнер! Он почти содержит эквивалентные аннотации для многих функций Spring IoC. Итак, как мы можем использовать модули с поддержкой Spring внутри OSGI? Можем ли мы устранить Spring для наших новых проектов и полностью полагаться на OSGI? Или для зависимости Инъекции внутри модулей мы можем использовать Spring и для инъекций зависимостей над модулями, мы можем использовать OSGI?
Для реальных приложений большого масштаба у нас есть два варианта: использование встроенного Felix в приложении Container (например, Tomcat) или использование пакета OSGI приложения Container (Jetty или Tomcat) в KARAF. Какой подход лучше? Какой из них более масштабируемый?