Spring не загружает бины данных (@Repository) из зависимости
ситуация
У меня есть модульное приложение Spring Boot, которое в настоящее время состоит из applicationProject
, который включает в себя первый подмодуль moduleA
как зависимости (maven).
Это позволяет applicationProject
быть единым Java-классом, который инициализирует приложение Spring, где фактическая функциональность предоставляется модулями, определенными как зависимости.
Все мои модули, а также applicationProject
находятся под базовым пакетом com.mycompany.myproduct
,
мой applicationProject
Java-класс выглядит так просто:
@SpringBootApplication(scanBasePackages ="com.mycompany.myproduct")
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
В моем moduleA
проект я не использую @ComponentScan
аннотация или расширение этого.
вопрос
Когда я запускаю свое приложение таким образом, я получаю UnsatisfiedDependencyException
, а Spring пытается инициализировать бин ServiceA
что это само зависит от другого боба RepositoryA
оба определены в moduleA
,
Это заставляет меня предположить, что Spring обнаруживает bean-компоненты, но неправильно строит дерево зависимостей, что приводит к неправильному порядку создания экземпляров bean-компонентов.
При добавлении
@EnableJpaRepositories(basePackages = "com.mycompany.myproduct")
@EntityScan(basePackages = "com.mycompany.myproduct")
к инициализации MyApp
класс, пружина загружает бобы правильно, и приложение работает успешно.
Мне кажется, что это обходной путь или зачем мне снова объявлять базовый пакет для @EnableJpaRepositories
а также @EntityScan
когда я уже объявил базовый пакет в SpringBootApplication
аннотаций?
Или это даже недостаток независимых весенних проектов?