Как автоматически связать класс с асинхронными методами с другим классом с асинхронными методами

У меня есть один класс EmailServiceImpl, который реализует EmailService, и другой класс ReportServiceImpl, который реализует ReportService. Оба интерфейса снабжены аннотациями @EnableAsync, поэтому существуют методы с аннотациями @Async.

Я использую Spring TaskExecutor по умолчанию.

Я не могу автоматически подключить EmailService к ReportService.

См. трассировку стека здесь


person sarvagya kumar    schedule 03.06.2016    source источник
comment
Трассировка стека, пожалуйста. Async и Autowired не должны заботиться друг о друге. Вам не нужно дважды включать асинхронную поддержку, но это тоже не должно быть проблемой.   -  person zapl    schedule 03.06.2016
comment
Я не включаю асинхронность дважды, но Spring по умолчанию создает прокси для асинхронных методов, и я не могу его обойти. Конечно, Async и Autowired не заботятся друг о друге, проблема возникает, когда я пытаюсь автоматически связать уже проксированный класс внутри другого прокси-класса.   -  person sarvagya kumar    schedule 03.06.2016
comment
Оба интерфейса имеют аннотацию @EnableAsync? В любом случае, у вас есть трассировка стека или сообщение об ошибке для проблемы? Не должно быть никаких причин, по которым проксируемые классы не могут быть автоматически подключены к другим проксируемым классам: stackoverflow.com/a/18995799/995891   -  person zapl    schedule 03.06.2016
comment
Вы читали документацию для @EnableAsync? В нем говорится, что аннотацию необходимо использовать в классе @Configuration, а не в интерфейсе. документы. spring.io/spring/docs/4.2.4.RELEASE/javadoc-api/org/   -  person JamesENL    schedule 03.06.2016
comment
Я добавил скриншот Stacktrace   -  person sarvagya kumar    schedule 03.06.2016


Ответы (1)


Теперь он работает, я использовал метод applicationcontext.getBean("beanName"), чтобы получить компонент вместо @Autowired.

person sarvagya kumar    schedule 03.06.2016