У меня есть пружинный конфигуратор, подобный этому:
@Bean
public A a() {
// ...
if (...) throw new IllegalStateException();
// ...
}
@Bean
@ConditionalOnBean(A.class)
public B b1(A a) {
// ...
}
@Bean
@ConditionalOnMissingBean(A.class)
public B b2() {
// ...
}
Мне бы хотелось, чтобы, если a()
выбрасывает исключение, вместо того, чтобы печатать исключение и жаловаться, что оно не может создать экземпляр A
, я бы хотел использовать b2
вместо b1
(и печатать трассировку стека информативным способом). Я пытался добавить @ConditionalOnBean
, но это не помогло.
Я не могу действительно объединить a()
и b1
и b2
в одном методе, так как мне нужны и A
, и B
в разных местах моего кода.