Я искал это некоторое время.@Conditional при инициализации боба
До сих пор я нашел this блог очень полезный, но не решил мою проблему.
Я хочу @Autowired
боб только если flag
верно, то я хочу, чтобы быть null
Use Case:
Если один из БД находится на обслуживании, я не хочу мое приложение терпит неудачу.
@Bean("sqlDatabase")
public Database getSqlDatabase(@Value("${datasource.sql.url}") String url,
@Value("${datasource.sql.username}") String username, @Value("${datasource.sql.password}") String password,
@Value("${datasource.poolsize.min}") int minPoolSize, @Value("${datasource.poolsize.max}") int maxPoolSize,
@Value("${database.enable-sql}") boolean isSqlEnabled) {
if (isSqlEnabled)
return Database.builder().url(url).pool(minPoolSize, maxPoolSize).username(username).password(password)
.build();
else
return null;
}
Теперь, в этом случае, его бросали ошибки, как я не могу autowire
null
боб.
Я хотел использовать @Conditional
, но мой случай немного сложный. Мне нужно, чтобы все 3 базы данных обновлялись. Я просто хочу, чтобы skip
один из них, если условия не выполнены.
* Мне уже нужны все 3 базы данных для обновления. Я просто хочу пропустить один из них, если условия не выполняются. *. Можете ли вы подробнее рассказать о том, что вы подразумеваете под этим? – CKing
У меня есть приложение для загрузки весны, которое касается 3 баз данных. Я создаю для них 3 разных компонента. теперь позволяет говорить об обслуживании, мы хотим отключить один бит, мне все равно нужно отдохнуть 2. В примере в блоге. Это 'EITHER-OR', что действительно не применимо в моем случае. Я просто не хочу, чтобы моя инициализация зависала с таймаутами, которые пытались подключиться. –