В нашей команде мы немного обсуждаем, разрабатывая довольно простое приложение Spring Boot. Поскольку мы хотели четко разделить проблемы, мы разделили нашу систему (модули Maven) на три модуля:
Раньше я реализовал несколько проектов Spring Boot и впервые настроил его таким образом. У меня есть особые опасения по поводу того, имеет ли смысл держать Spring Boot вне репозитория, потому что это потребует от нас выполнения большого количества проводок, таких как JDBC, jooq, liquibase и т. д., Вручную в Service.
Есть ли у кого-нибудь совет, имеет ли смысл так делать?
Я имею в виду, что в модуле Repository нет зависимости от какой-либо библиотеки Spring Boot, только напрямую от postgres / jooq.




Я думаю, что на этот вопрос могут быть ответы, основанные на мнениях. Однако ... я думаю, что это разделение может привести к модели развития, которая больше похожа на старую модель водопада, чем на современные подходы. Как учат подходы микросервисов, я думаю, что было бы лучше применить вертикальное разделение задач, модулируя приложение по функциональным областям, а не по уровню абстракции. Внутри каждый модуль должен обрабатывать все, что связано с его функциональной областью.
I have particular concerns as to whether it makes sense to keep Spring Boot out of Repository because it will require us to do a lot of the wiring, like JDBC, jooq, liquibase, etc. manually in Service.
Если вы правильно используете фреймворки TDD, это не должно быть проблемой. Я уже работаю над многомодульными проектами Maven (Spring Boot), и у меня никогда не было проблем с этим, но, очевидно, это зависит от того, что вы делаете в своих проектах.
Спасибо за Ваш ответ. У меня проблемы с пониманием последнего абзаца. Я хотел сказать, что инъекция, о которой обычно заботится Spring, должна выполняться вручную в коде в проекте Service, потому что он не может полагаться на аннотации, сканирование компонентов, поскольку нет зависимости Spring в репозитории. Я не понимаю, почему вы поднимаете здесь TDD, я полагаю, потому что там есть похожая проблема с подключением?
Да, есть проблема с подключением. Правильная настройка родительского pom.xml позволит вам выполнить инъекцию во все ваши подмодули. Одно предупреждение: это может быть легко или сложно, в зависимости от того, что вам нужно делать в своем проекте. На этом уровне абстракции очень сложно дать более точный ответ.
что вы имеете в виду под
(no Spring Boot dependency)?