Несколько версий с пружинным сердечником, необходимых для войны и зависимой банки - PullRequest
0 голосов
/ 26 марта 2019

У меня есть код приложения, который использует Java 8, и для этого я обновил версию Spring до 4.1.9, но один из необходимых jar-ов зависит от Spring-Core 3.2.4, поэтому война заполняется 2версии весенних баночек.из-за этого я получаю ошибку развертывания.

Пожалуйста, предоставьте вашу помощь по приведенным ниже вопросам

1> могу ли я заставить нужный банку использовать весеннюю версию 4.1.9, исключив 3.2.4 из войныупаковка или что-то?

2> Могу ли я создать отдельные контексты для инициализации бина, который я получаю из необходимой банки с помощью пружины 3.2.4

Спасибо

1 Ответ

1 голос
/ 26 марта 2019

Я не рекомендую такой гибрид, даже если вам удастся каким-то образом заставить его работать правильно.

Я бы проанализировал приложение, чтобы выяснить, для каких частей нужна более старая версия,и какие части нуждаются в более новой версии.Затем я бы разделил приложение на два разных подмодуля, развернув их отдельно.Это довольно дешево, если вы используете контейнеризацию (например, Docker).

Модули могут и должны иметь возможность обмениваться сообщениями через REST, Soap, gRPC или через брокера (такого как ActiveMQ) для обмена сообщениями.

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

Вы также можете зарегистрировать адаптеров компонентов, которые делегируют более старые / подлежащие обновлению компоненты.Это позволит вам выполнить рефакторинг старого кода при сохранении стандартизированного интерфейса.

...