Spring middle
Чем @Async может удивить?
Ответ
Не работает self-invocation (как у @Transactional). Нужен @EnableAsync. Default executor может быть неподходящим — часто настраивают свой.
Разбор: @Async работает через Spring-прокси, поэтому вызов асинхронного метода изнутри того же бина (self-invocation) идёт мимо прокси и выполняется синхронно, как и у @Transactional; нужен @EnableAsync, а дефолтный SimpleAsyncTaskExecutor часто заменяют своим пулом. Ловушки в дистракторах — выдуманные правила про static, тип возврата и автоматическое включение.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.