У меня есть два модуля maven:
api-module
commons-module
API-модуль содержит пакет com.example.api , а модуль commons содержит пакет com.example.commons .
Когда я запускаю основное приложение com.example.api.ApiMain , выполнение не выполняется.
Это потому, что у меня есть классы репозитория Mongo, определенные в пакете commons . Контроллеры API зависят от них, и, поскольку они не создаются до бобов api , выполнение завершается неудачно.
Вот основное приложение API:
package com.example.api;
@SpringBootApplication
@ComponentScan({"com.example.commons", "com.example.api"})
public class ApiMain {
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
public static void main(String[] args) {
SpringApplication.run(ApiMain.class, args);
}
}
Как убедиться, что компоненты com.example.commons сканируются до загрузки bean-компонентов в com.example.api ?
Я могу использовать аннотацию @ DependsOn для каждого компонента в com.example.api , но в будущем будет добавлено несколько классов и еще несколько, и это сделает код уродливым .
Эта проблема может быть решена, если есть способ настроить пружину на загрузку компонентов из commons-module сначала.
Вы можете научить меня, как это сделать.