В настоящее время у меня довольно много сервисов, написанных на 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})
, что утомительно и подвержено ошибкам. Есть ли способ включить этот файл в процесс сканирования компонента?