Не могу заставить Spring Retry работать - PullRequest
0 голосов
/ 02 июля 2018

Последние несколько дней я пытался заставить приложение Spring использовать Spring Retry, но пока безуспешно. У меня есть конфигурация на основе XML, поэтому я попытался добавить

<context:annotation-config/>
<aop:aspectj-autoproxy />
<bean class="org.springframework.retry.annotation.RetryConfiguration" />

вместе с добавлением необходимых зависимостей и настройкой функции, которую я использую @Retryable, это не сработало.

Я также добавил компонентное сканирование в свой XML для вновь созданного файла конфигурации, к которому я добавил @Configuration и @EnableRetry. Я пробовал это как с пустым файлом конфигурации, так и с файлом, настроенным в ReturnPolicy, пробовал обе эти установки с аспектами и без них вместо использования @Retryable. Ни один из вариантов не работал.

У меня заканчиваются источники и идеи для изучения, любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

0 голосов
/ 02 июля 2018

Надеюсь, вы правильно настраиваете Примечание @ Retryable к обнаруживаемому методу необходимо правильно вызывать из инициализированного контекста пружины. Вы делаете это (метод вызывается из бина из весеннего контекста) или вызывается другими способами - вне контекста?

В качестве альтернативы JUnit - лучший друг - попробуйте SpringJunit4ClassRunner

Вы должны реструктурировать свой тестовый класс, по крайней мере, примерно так:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=MyConfig.class)
public class MyServiceTest {
    @Configuration
    @EnableRetry
    @Import(myService.class)
    public static class MyConfig {}

Пара справочных страниц здесь

...