конфигурация нескольких модулей с пружинной загрузкой - PullRequest
1 голос
/ 21 марта 2019

В настоящее время я выполняю рефакторинг приложения Spring-Boot, работающего под управлением v1.5.1. Выпуск, собранный с Maven. Я пытаюсь провести рефакторинг приложения, чтобы упростить процесс развертывания для нашей команды DevOps.

Ранее приложение было сконфигурировано с библиотечными артефактами или «клиентами», которые были извлечены в проект как maven зависимости / jars с нашего сервера Artifactory. Наша группа владеет зависимостями, которые в настоящее время не используются никакими другими приложениями. Предыдущая структура проекта выглядела так:

[Root package]
Client
|-src/main
|---java.com.company.group.app.client
|----config
|----[...]
|----service
|---resources
|----config
|-----application.yml
|-----application-test.yaml
|-----[...]
|+pom.xml
|-test/main
|---java.com.company.group.app.client
|----[...]
Service
|-src/main
|---java.com.company.group.app.service
|----app
|----[...]
|---Application.java (main spring-boot method)
|+pom.xml
parent-pom.xml

Структура, над которой я работаю, будет моно-репо с зависимыми проектами в виде модулей, перечисленных в родительском поме. т.е.

[root-package]
Client
|-src/main
|---java.com.company.group.app.client
|----config
|----[...]
|----service
|---resources
|----config
|-----application.yml
|-----application-test.yaml
|-----[...]
|+pom.xml
|-test/main
|---java.com.company.group.app.client
|----[...]
Service
|-src/main
|---java.com.company.group.app.service
|----app
|----[...]
|---Application.java (main spring-boot method)
|+pom.xml
Module1
|-src/main
|---java.com.company.group.app.module1
|----[...etc]
|+pom.xml
Module2
|-src/main
|---java.com.company.group.app.module2
|----[...etc]
|+pom.xml
Module3
|-src/main
|---java.com.company.group.app.module3
|----[...etc]
|+pom.xml
|parent-pom.xml

Пока что этот подход работает. Я использую компонентное сканирование базового пакета в методе Main для переноса компонентов из подмодулей в контекст приложения.

Проблема, с которой я сталкиваюсь, заключается в том, что конфигурация, определенная в файле yaml в модуле 'service', не определяется во время выполнения. Основной метод spring-boot находится в этом же каталоге.

У меня вопрос: нужно ли перенести метод Main за пределы пакета службы в корень проекта или создать приложение-оболочку? Или есть причина, по которой Spring не сможет использовать один yaml для нескольких компонентов? Конфигурации для каждого подмодуля есть в одном файле yaml, и это работало, когда модули извлекались как библиотечные зависимости.

Я пытался искать SO, но, похоже, ни один вопрос не касается моей конкретной проблемы.

...