Spring @Async AdviceMode.ASPECTJ вызывает ошибки создания бина - PullRequest
0 голосов
/ 03 октября 2018

Столкнулся с проблемой при переходе на весеннюю загрузку 2. У меня есть такой класс конфигурации:

@Configuration
@EnableScheduling
@EnableAsync(mode = AdviceMode.ASPECTJ)
public class AsyncConfig implements SchedulingConfigurer, AsyncConfigurer
{
   // ...
}

Вероятно, что когда я устанавливаю mode = AdviceMode.ASPECTJ, я получаю исключения при создании пользовательских бинов:

    @Bean
    public EhCacheCleaner ehcacheCleaner()
    {
        EhCacheCleaner cacheCleaner = new EhCacheCleaner();
        cacheCleaner.setCacheManagersNames("hibernateCache", "sampleCache");
        return cacheCleaner;
    }

Исключение:

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем 'cacheCleanerService': неудовлетворительная зависимость, выраженная через поле 'ehcacheCleaner';вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем 'ehcacheCleaner', определенным в ресурсе пути к классу [com / panbet / externalbet / core / config / AsyncConfig.class]: не найден соответствующий метод фабрики: factory bean'asyncConfig';фабричный метод 'ehcacheCleaner ()'.Убедитесь, что метод с указанным именем существует и не является статичным.

Если я удаляю mode = AdviceMode.ASPECTJ , это исключение исчезает, НО методы @Async не работают.Исключение:

BeanFactory должен быть установлен на AnnotationAsyncExecutionAspect для доступа к квалифицированному исполнителю

Как избавиться от этого?В чем причина исключений?Спасибо.

...