Как выполнить сканирование компонентов для одноуровневого пакета в Spring Boot - PullRequest
0 голосов
/ 07 января 2019

В настоящее время у меня довольно много сервисов, написанных на Spring Boot 2.1.3 (в режиме моно-репо), и у меня есть общий пакет, который используется в большинстве сервисов.

Итак, мои пакеты организованы следующим образом:

root
root.common
root.serviceA
root.serviceA.<subpackages>
root.serviceB
root.serviceB.<subpackages>
...
root.serviceX
root.serviceX.<subpackages>

В каждом сервисе у меня есть Program.java, где он помечен @SpringBootApplication (например, root/serviceA/Program.java)

Проблема, с которой я столкнулся, состоит в том, что в root.common (например, root/common/JSONSerializer.java) есть компонент, который необходимо загрузить во все службы. Я попытался пометить файл с помощью @JsonComponent, но, очевидно, он не работает, потому что он находится вне пакета root.service*.

Мне удалось заставить его работать, вручную добавив тег @Import в основной файл, но это означает, что для каждой службы мне нужно вручную добавить @Import({root.common.JSONSerializer.class}), что утомительно и подвержено ошибкам. Есть ли способ включить этот файл в процесс сканирования компонента?

1 Ответ

0 голосов
/ 07 января 2019

Вы можете установить каждый класс Программы следующим образом:

 @SpringBootApplication(scanBasePackages = {"root.serviceA", "root.common"})

ЛИТЕРАТУРА

Документация SpringBootApplication

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...