Spring middle

@Async — что важно знать?

Ответ

Работает через прокси (как @Transactional) — не работает при self-invocation. Нужен @EnableAsync. Default executor может быть неподходящим — часто настраивают свой TaskExecutor.

Разбор: @Async реализован через AOP-прокси, поэтому требует @EnableAsync и не срабатывает при self-invocation (вызов минует прокси), а задачи отправляются в TaskExecutor, который по умолчанию (SimpleAsyncTaskExecutor) создаёт поток на каждую задачу без переиспользования — поэтому обычно настраивают свой пул. Метод может возвращать void, Future или CompletableFuture.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться