2016-02-05 3 views
3

Мы будем использовать Spring Boot для создания сервисов. Наша первоначальная идея состояла бы в том, чтобы каждая служба (не обязательно микросервис) была автономной и развертывалась как файл .jar. Maven для сборки.Решения о настройке проекта Spring Boot

мне интересно, что будет хорошей весна загрузка структуры проекта, так как каждая услуга будет самодостаточной, но я предполагаю, что услуги по-прежнему будет иметь некоторую коду/организацию, которые могут или должны быть повторно использованы между службами

Варианты:

  1. Каждая служба является самостоятельным проектом Spring загрузки. Реализует только объекты, контроллеры и служебные данные, которые требуются для фактического обслуживания.

    Хорошо: каждый сервис полностью самодостаточный

    Bad: насчет пользовательских классов полезности, которые должны быть повторно использовано между службами? Как насчет объектов домена, которые могут понадобиться для служб?

  2. Все сервисы создаются на одной и той же кодовой базе. Все сервисы могут повторно использовать утилиты, контроллеры и т. Д. Из всех других сервисов. Хорошо: простое повторное использование Плохо: JVM теперь может обслуживать все сервисные звонки? границы обслуживания теперь обрабатываются балансировщиками нагрузки?

Спасибо за помощь!

+1

Для удобства использования вы можете думать ab чтобы создать для него зависимость от maven. Вы можете использовать специальные утилиты в одном месте и можете обрабатывать изменения, используя эту версию. – Patrick

ответ

1

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

Каждая служба будет использовать этот JAR/s как нормальную зависимость.

я работал в команде, где мы использовали этот подход:

  1. кода аутентификации
  2. АОП для регистрации
  3. Некоторые общие проверочный код
  4. объекты Некоторые общие домен обработки
  5. Exception
Смежные вопросы