Существует простой Java-проект core
, который имеет служебные классы и конфигурации, которые напрямую импортируются в микросервисы (Spring Boot).В этом случае api
и admin
.
Вот настройка build.bradle
для отображения структуры проекта.
project(':core') {
dependencies {
}
}
project(':api') {
apply plugin: 'war'
build.dependsOn ':core:build'
dependencies {
compile project(':core')
}
}
project(':admin') {
apply plugin: 'war'
build.dependsOn ':core:build'
dependencies {
compile project(':core')
}
}
Я думаю, что микросервисы должны быть независимы друг от друга, так что этот проект core
может иметь некоторую потенциальную проблему в будущем.Например, у нас есть свойства источника данных в проекте core
.Что если для нового микросервиса требуется другой источник данных?Хотя мы можем переопределить свойства core
, используя другой файл свойств и профиль, я думаю, что это только усложняет ненужные настройки.Может быть, даже больше, если необходимо изменить общие классы.
Является ли целесообразным иметь базовый проект, который разделяет общие классы и свойства для микросервисов?