2016-06-03 8 views
0

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

Я использую стандартный исполнительный исполнитель по умолчанию.

Я не могу autwire EmailService внутри ReportService.

Please refer to the stacktrace here

+0

Stacktrace pls. Async и Autowired не должны заботиться друг о друге. Вам не нужно включать поддержку async дважды, но это тоже не должно быть проблемой. – zapl

+0

Я не разрешаю асинхронно, но весна по умолчанию создает прокси для асинхронных методов, и я не могу обойти его. Конечно, Async и Autowired не заботятся друг о друге, проблема возникает, когда я пытаюсь autwire уже прокси-класс внутри другого прокси-класса. –

+0

«Оба интерфейса аннотируются с помощью @EnableAsync»? Во всяком случае, есть ли у вас сообщение stacktrace или сообщение об ошибке? Не должно быть причин, по которым проксированные классы не могут быть автоматически добавлены в другие проксированные классы: http://stackoverflow.com/a/18995799/995891 – zapl

ответ

2

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