Sobes.tech
Junior — Middle
105

Spring'de ana iş parçacığını engellemeden arka plan görevlerinin nasıl yapılandırılacağı?

AI'dan gelen yanıt

sobes.tech yapay zeka

В Spring для выполнения задач в фоновом режиме используется аннотация @Async. Она позволяет запускать методы асинхронно, не блокируя основной поток.

Чтобы это работало, нужно:

  1. Включить поддержку асинхронности в конфигурации, добавив @EnableAsync в класс конфигурации.
  2. Пометить метод, который должен выполняться в фоне, аннотацией @Async.

Пример:

@Configuration
@EnableAsync
public class AsyncConfig {
}

@Service
public class MyService {

    @Async
    public void doBackgroundTask() {
        // Долгая операция
        System.out.println("Выполняется в фоне");
    }
}

При вызове doBackgroundTask() из другого бина метод запустится в отдельном потоке, не блокируя вызывающий поток.

Важно: вызов асинхронного метода должен происходить через Spring-контейнер (например, через внедрение бина), иначе @Async не сработает.