У меня есть два модуля: module1
и module2
.
module2
зависит от module1
.
Конфигурация в module1
:
@Configuration
public class ConfigurationInModule1 {
@Bean
public FirstBean firstBean() {
return new FirstBean();
}
@Bean
public SecondBean secondBean(FirstBean firstBean) {
return new SecondBean(firstBean);
}
}
Конфигурация в module2
:
@Configuration
public class ConfigurationInModule2 {
@Bean
public SomeBeanForModule2 beanForModule2(FirstBean firstBean) {
return new SomeBeanForModule2(firstBean);
}
}
Как видите, оба компонента secondBean
и beanForModule2
зависят от firstBean
.Мне нужно убедиться, что когда проект скомпилирован с module2
, то beanForModule2
должен быть инициализирован до secondBean
.Если нет module2
, то secondBean
следует инициализировать в стандартном потоке .
Возможно ли настроить его весной?
PS Мне нужноконтролировать порядок инициализации.Я знаю, что есть специальная аннотация @DependsOn
, которую можно использовать для настройки косвенной зависимости, но в моем случае я не могу использовать ее на secondBean
, поскольку зависимость beanForModule2
является необязательной и помещается в другой модуль.