#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: Я хотел бы призвать экспертов прокомментировать это, если это хороший / плохой подход. Это то, что я знаю благодаря скудному опыту, который у меня есть в отрасли.