2016-11-28 4 views
0

У меня есть приложение для загрузки Spring, которое действует как небольшая структура для других приложений. Он предоставляет пару очередей JMS и уровень DAO для извлечения и хранения данных из общего набора хранилищ данных. Проблема заключается в том, что первоначальный разработчик этого приложения инфраструктуры просматривает весь пакет «com.mycompany» (а не com.mycompany.framework), чтобы он мог загружать компоненты определенного приложения, которые могут быть объявлены в com.mycompany. myapp1 или com.mycompany.myapp2, а JAR - вместе с JAR-файлами фреймворка.Использование SpringBoot в качестве загрузчика приложений

Мы загружаем только одно приложение в JVM (app1 или app2), но эти приложения могут обмениваться другими библиотеками, и иногда мы заканчиваем тем, что в этом контексте нам не нужны. (это может потребоваться в приложении 1, но не в app2) Итак, что бы вы посоветовали?

Моя проблема похожа на то, что было описано здесь: https://github.com/spring-projects/spring-boot/issues/3300

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

ответ

0

Возможно, вам следует рассмотреть возможность использования некоторых возможностей автоматической настройки Spring Boot, таких как @ConditionalOnProperty или @ConditionalOnClass в вашей структуре. Таким образом, вы можете фактически активировать определенные bean-компоненты, если и когда приложение, использующее вашу инфраструктуру, принимает какое-то конкретное действие (например, имеет заданную банку в пути к классам или задает значение конфигурации). Для справки: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-developing-auto-configuration

Смежные вопросы