Что такое @Async в Spring?

Middle
279 просмотров
AFK Offer AI

@Async на методе — выполнение в отдельном потоке. Метод должен возвращать void или CompletableFuture. @EnableAsync активирует. По умолчанию используется SimpleAsyncTaskExecutor (создаёт новый поток на каждый вызов — плохо). Настрой свой Executor: ThreadPoolTaskExecutor с corePoolSize, maxPoolSize, queueCapacity. Работает через AOP-прокси — тот же подводный камень, что у @Transactional: вызов из того же класса не будет асинхронным. Обработка ошибок через AsyncUncaughtExceptionHandler.

Следующий вопрос

Что такое CQRS и как его реализовать в Spring?