A @Bean
фабричный метод - это просто определение компонента;Вы не можете поместить код времени выполнения, подобный этому
try {
return template.execute(callback);
} catch (Exception e) {
logger.error("Retry processing failed " + e.getMessage());
return RetryTemplate.FAILED;
}
. Вы должны return template;
.
Поскольку вы передаете RetryCallback
в метод фабрики, вы должны определить @Bean
этого типа в другом месте.
Однако обратный вызовиспользуется во время выполнения, а не во время определения компонента.
Затем вы используете template.execute()
в другом месте вашего приложения.
Именно то, что есть RetryTemplate.FAILED
- такой константы нет.