Я пытаюсь создать «основное» приложение SpringBoot, которое должно состоять из множества небольших независимых приложений SpringBoot. Основное приложение взаимодействует с каждым из небольших приложений SpringBoot для запроса данных или их изменения. Каждое из небольших приложений выполняет определенный домен. Например, приложение зависимости / SpringBoot для управления пользователями, передачи почты, управления продуктами, выполнения заказов. Каждое из небольших приложений использует собственную базу данных, которая отделена от других.
Я добавил небольшие приложения в качестве зависимости от моего основного приложения. Сейчас я сталкиваюсь с проблемой или с тем фактом, что main создает все компоненты из зависимых приложений. Я знаю, как работает SpringBoot. Проблема в том, что в каждой зависимости есть несколько компонентов или классов с одинаковыми именами. Поэтому запуск приложения просто приводит к сбою, потому что есть бины с одинаковыми именами, которые являются правильными Далее основной пытается создать экземпляр подключения к БД Hikari, но не должен иметь никакого соединения с БД. Я думаю, что это потому, что другие приложения имеют подключение БД. Поэтому main также пытается создать соединение с БД.
Идея, лежащая в основе этого, заключается в создании модульного монолита, чтобы в будущем одну или несколько зависимостей можно было заменить микросервисом. В настоящее время построение микросервисной архитектуры не требуется и не востребовано. Поэтому я хотел бы построить модульную монолитную архитектуру.
Есть ли способ, которым каждое из приложений Spring Boot просто использует свой собственный компонент Beans, а основное приложение может просто вызывать определенный интерфейс / API других? Точно так же, как другие сервисы предоставляют REST API, но без предоставления REST API.
Будет ли SpringBootApplicationBuilder
(https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/builder/SpringApplicationBuilder.html) использование детей / братьев и сестер способом достижения моей цели? Или я что-то упускаю и нет пути к достижению цели?