Использование Spring без предоставления зависимостей клиентскому приложению - PullRequest
4 голосов
/ 06 сентября 2011

Я пишу Java API для нескольких клиентов, и внутренне хотел бы использовать Spring и его несколько функций, но я не хочу показывать клиенту свои зависимости.

Возможно ли это?

Так что, если мой клиент использует другую версию Spring, он будет изолирован от моих внутренних зависимостей Spring.

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

Я слышал, что вы можете использовать это через комплекты OSGI, но мне интересно, удовлетворит ли это мое требование.

Клиентам моего API не будет разрешено использование OSGI, или у нас нет текущей среды, в которой используются пакеты OSGI.

1 Ответ

1 голос
/ 07 сентября 2011

Это не реально выполнимо или нежелательно.Почему вы хотите «скрыть» зависимости?Хотели бы вы также скрыть зависимость от используемого вами пакета журналирования (например)?

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

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

Редактировать - Относительно OSGi:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...