Я не думаю, что есть прямой ответ на этот вопрос. T
Ключевым моментом здесь является модульность - проблема, которая, на мой взгляд, не очень хорошо решена в настоящее время с помощью Java-приложений. Возможно, вы захотите взглянуть на OSGi или динамические модули, хотя я не уверен, насколько они эффективны с точки зрения этой проблемы.
Я видел решения, где люди помещают классы в контейнер сервера приложений / сервлета, я не согласен с этим, но, похоже, он работает ... Я уверен, что есть ужасные истории!
Maven, безусловно, облегчает задачу, разбивая приложения на модули, но если вы делаете это и развертываете модули независимо, вам нужно убедиться, что разные версии хорошо играют вместе в тестовой среде, чтобы начать с ...
Альтернативой является разделение вашего приложения по функциональности и размещение отдельных функций на различных серверах, например:
- Учетные записи клиентов - сервер A
- Поиск - Сервер B
- Онлайн бронирование - Сервер C
- Платежные услуги - Сервер D
Разбиение облегчает развертывание приложений, но опять же вы должны убедиться, что ваши модули сначала хорошо сочетаются друг с другом. Надеюсь, это поможет.