Şuayb'in BloguŞuayb'in Blogu
Ana Sayfa
Kategoriler
Oyunlar
MediumHakkındaİletişim
Dil
Tema
    1. Blog
    2. Programlama
    3. Spring Boot Asenkron Görevler

Spring Boot Asenkron Görevler

İlk yayın20 Şubat 2025
Son güncelleme21 Şubat 2025
Okuma süresi3 dk okuma
JavaKotlinSpring BootAsenkron Görevler
XLinkedInFacebook
Spring Boot Asenkron Görevler

Beğeni yükleniyor...

Spring Boot, @Async anotasyonu ile arka planda asenkron görevler çalıştırmayı kolaylaştırır. Bu, ana threadi engellemeden görevleri çalıştırarak uygulamanın performansını artırmak ve yanıt süresini optimize etmek için kullanılır.


Son güncelleme21 Şubat 2025

Toplam görüntülenmeGörüntülenme yükleniyor...

Önceki makaleSpring Boot Planlanmış GörevlerSonraki makaleSpring Boot Kubernetes Entegrasyonu
Şuayb Şimşek

Yazan

Şuayb Şimşek

Spring Boot, güvenlik, mikroservis ve cloud-native mimari konularında pratik teknik notlar paylaşan backend odaklı fullstack geliştirici.

Uzmanlık

  • Spring Boot
  • Go
  • Mikroservis
  • Next.js
  • Cloud Native

Bağlantılar

GitHubLinkedInMedium

Benzer yazılar

Spring Boot Sanal Thread’li Asenkron Görevler
Programlama

Spring Boot Sanal Thread’li Asenkron Görevler

Spring Boot’ta JDK 21 sanal thread’leri ve `@Async` anotasyonunu kullanarak hafif ve ölçeklenebilir asenkron görevleri nasıl oluşturacağınızı öğrenin.

26 Nisan 20253 dk okuma
JavaKotlinSpring BootAsenkron GörevlerSanal Thread
Spring Boot Configuration Properties
Programlama

Spring Boot Configuration Properties

@ConfigurationProperties ile tip-güvenli yapılandırma tanımlamayı, @Validated ile ayarları doğrulamayı ve profile-specific application-{profile}.yml dosyalarıyla ortama göre değer yönetimini öğrenin.

4 Şubat 20263 dk okuma
JavaKotlinSpring BootYapılandırma
Spring Boot GraphQL JWE Kimlik Doğrulama
Programlama

Spring Boot GraphQL JWE Kimlik Doğrulama

Stateless şifreli JWT’ler (JWE) ile Spring Boot GraphQL API’lerinizi güvenli hale getirmeyi; kullanıcı kimliği ve rolleri JPA ile bir veritabanında saklamayı öğrenin.

17 Mayıs 20256 dk okuma
JavaKotlinSpring BootGüvenlikJWTJWEGraphQL

Hakkımda

Spring Boot, mikroservis, güvenlik ve daha fazlası hakkında yazılar.

İletişimYeni başladıysan

Son yazılar

  • Captain Tsubasa 2: World Fighters
  • Captain Tsubasa: Rise of New Champions
  • Spring Boot Configuration Properties
  • Spring Boot GraphQL JWE Kimlik Doğrulama
  • Spring Boot JPA ile JWE Kimlik Doğrulaması

Popüler konular

JavaKotlinSpring BootGüvenlikJWEJWT

Abone ol

Yeni yazılar yayınlandığında pratik backend ve fullstack notlarını al.

Sosyal

© 2024-2026 Şuayb'in Blogu. Tüm hakları saklıdır.

🌟 Neden Spring Boot'ta @Async Kullanmalıyız?

Bu bölümde Neden Spring Boot'ta @Async Kullanmalıyız? konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

  • Engellenmeyen Çalıştırma: Görevleri ana thread'i bekletmeden çalıştırır.
  • Geliştirilmiş Performans: Bağımsız görevleri paralel olarak yürütür.
  • Daha İyi Ölçeklenebilirlik: Diğer süreçler için kaynakları serbest bırakır.
  • Kolay Entegrasyon: Spring Boot’un bağımlılık enjeksiyonu ve yaşam döngüsü yönetimiyle sorunsuz çalışır.

📋 Gereksinimler

Şu gereksinimlere sahip olduğunuzdan emin olun:

  • ☕ Java Development Kit (JDK) 17+
  • 📦 Maven veya Gradle kurulu
  • 🔤 Bir Java IDE (IntelliJ IDEA, Eclipse vb.)

🛠️ Adım 1: Bağımlılıkları Ekleyin

Asenkron işlemleri etkinleştirmek için spring-boot-starter-web bağımlılığını pom.xml veya build.gradle dosyanıza ekleyin.

Maven:

XMLpom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Gradle:

GROOVYbuild.gradle
implementation 'org.springframework.boot:spring-boot-starter-web'

🛠️ Adım 2: Uygulamanızda Asenkron İşlemi Etkinleştirin

Ana uygulama sınıfınıza @EnableAsync anotasyonunu ekleyerek asenkron çalışmayı etkinleştirin.


🛠️ Adım 3: Asenkron Bir Görev Tanımlayın

@Async anotasyonunu kullanarak bir asenkron metot tanımlayın.


🛠️ Adım 4: Asenkron Görevleri Tetiklemek için Bir Controller Oluşturun

Bir REST controller oluşturarak asenkron işlemi tetikleyin.


▶️ Uygulamayı Çalıştırma

Spring Boot uygulamasını çalıştırın:

BASH
./mvnw spring-boot:run

Veya Gradle kullanarak:

BASH
gradle bootRun

🧪 Asenkron Görevi Test Etme

Bu bölümde Asenkron Görevi Test Etme konusunu netleştirip uygulamada kullanacağınız temel noktaları özetliyoruz.

Asenkron Görevi Tetikleme:

Bu çağrı ile asenkron akışı tetikleyip görev yürütümünü loglar üzerinden takip edebilirsiniz.

BASH
curl -X GET http://localhost:8080/async/run

Beklenen Konsol Çıktısı:

Kendi log çıktınızı bu örnekle karşılaştırarak davranışın doğru çalıştığını hızlıca teyit edin.

PLAINTEXTsnippet.txt
Asenkron görev çalıştırıldı: 12:00:01

🏁 Sonuç

Artık Spring Boot Asenkron Görevler için üretim odaklı bir Spring Boot temeliniz var. Sonraki adımda ayarları kendi domainine uyarlayıp test ve gözlemlenebilirlik katmanını ekleyerek gerçek trafik altında doğrulayın.

JAVAAsyncApplication.java
package com.example.async;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;

@SpringBootApplication
@EnableAsync
public class AsyncApplication {
    public static void main(String[] args) {
        SpringApplication.run(AsyncApplication.class, args);
    }
}
KOTLINAsyncApplication.kt
package com.example.async

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.scheduling.annotation.EnableAsync

@SpringBootApplication
@EnableAsync
class AsyncApplication

fun main(args: Array<String>) {
    runApplication<AsyncApplication>(*args)
}
JAVAAsyncTask.java
package com.example.async;

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.time.LocalTime;

@Service
public class AsyncTask {

    @Async
    public void runTask() {
        System.out.println("Asenkron görev çalıştırıldı: " + LocalTime.now());
    }
}
KOTLINAsyncTask.kt
package com.example.async

import org.springframework.scheduling.annotation.Async
import org.springframework.stereotype.Service
import java.time.LocalTime

@Service
class AsyncTask {

    @Async
    fun runTask() {
        println("Asenkron görev çalıştırıldı: ${LocalTime.now()}")
    }
}
JAVAAsyncController.java
package com.example.async;

import org.springframework.web.bind.annotation.*;
import lombok.RequiredArgsConstructor;

@RestController
@RequestMapping("/async")
@RequiredArgsConstructor
public class AsyncController {

    private final AsyncTask asyncTask;

    @GetMapping("/run")
    public String triggerAsyncTask() {
        asyncTask.runTask();
        return "Asenkron görev tetiklendi!";
    }
}
KOTLINAsyncController.kt
package com.example.async

import org.springframework.web.bind.annotation.*

@RestController
@RequestMapping("/async")
class AsyncController(
    private val asyncTask: AsyncTask
) {
    @GetMapping("/run")
    fun triggerAsyncTask(): String {
        asyncTask.runTask()
        return "Asenkron görev tetiklendi!"
    }
}