Лучшая практика совместного использования репозиториев spring boot и DTO

#java #maven #spring-boot #architecture

#java #maven #spring-boot #архитектура

Вопрос:

У меня есть два проекта maven, использующих один и тот же модуль, которые содержат репозитории, DTO :

  • Проект 1:

    ———>module1

    ———>module2

    ———> общий модуль

    ———>pom.xml

  • Project2:

    ———> module3

    ———>module4

    ———> общий модуль

    ———>pom.xml

Каков наилучший способ избежать дублирования?

Комментарии:

1. Что вы здесь называете «дублированием»?

2. Создать отдельный микросервис для репозиториев? Создать библиотеку, поместить ее в локальный / внутренний артефактор и использовать как зависимость?

3. @Arnaud, Дублирование DTO и репозиториев в модуле «общий модуль»

4. @uneq95, микросервис для репозиториев? для этого модуля нет сервисов rest, только репозитории и DTO? не могли бы вы подробнее остановиться на этом моменте?

Ответ №1:

Если у вас есть Java-код, который необходим в двух многомодульных проектах, используйте отдельный проект и используйте зависимости Maven.

Я не понимаю, как репозитории могут быть частью многомодульного проекта.

Ответ №2:

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

Различные DTO также можно использовать повторно, если вы просто создадите отдельную библиотеку, содержащую все DTO, и опубликуете их, например, во внутреннем репозитории maven, а другие ваши микросервисы могут просто добавить эту библиотеку в качестве зависимости и использовать их.

PS: Я хотел бы призвать экспертов прокомментировать это, если это хороший / плохой подход. Это то, что я знаю благодаря скудному опыту, который у меня есть в отрасли.