Lagom по умолчанию создает два модуля для каждого микросервиса — API и реализацию.
Можно ли разделить один микросервис на 3+ модуля?
Lagom по умолчанию создает два модуля для каждого микросервиса — API и реализацию.
Можно ли разделить один микросервис на 3+ модуля?
Абсолютно. Вы должны сделать это так же, как и с любым другим проектом Java или Scala: создать подпроект, который является внутренней библиотекой, включенной в ваш сервис.
В качестве примера посмотрите на пример проекта Lagom онлайн-аукциона Java. В частности, подпроекты security
и tools
. Они включаются в другие услуги с помощью метода sbt
dependsOn
в build.sbt
.
Например:
lazy val itemApi = (project in file("item-api"))
.settings(commonSettings: _*)
.settings(
version := "1.0-SNAPSHOT",
libraryDependencies ++= Seq(
lagomJavadslApi,
lombok
)
)
.dependsOn(security, tools)
В этом случае проект API зависит от дополнительных библиотек, но вы можете сделать то же самое с вашим проектом реализации, чтобы использовать библиотеки, которые не нужны API. Обратите внимание, что проект реализации также зависит от соответствующего API, поэтому любые зависимости API наследуются реализацией.