Skip to content

Firatasi/java-springboot-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot Kapsamlı Rehber Serisi

Sıfırdan Production-Ready API Geliştirmeye Kadar Her Şey

Spring Boot Java

📖 Hakkında

Bu repository, Java dünyasının en popüler framework'ü olan Spring Boot'u sıfırdan öğrenmek isteyenler için hazırlanmış kapsamlı bir Türkçe rehber serisidir. Seri boyunca, temel konseptlerden başlayarak büyük ölçekli ve production-ready (canlı ortama hazır) API'ler geliştirmeyi öğreneceksiniz.

Bu rehber serisi:

  • ✅ Sıfırdan başlayanlar için uygun
  • ✅ Kurumsal (Enterprise) düzeyde en iyi pratikleri içerir
  • ✅ Katmanlı mimariyi (Layered Architecture) öğretir
  • ✅ Modern Java web geliştirme standartlarını kapsar
  • ✅ Gerçek dünya senaryoları ve projeler içerir

🎯 Seri İçeriği

📂 1. Bölüm (Basics)

📚 Parça 1: Temeller ve İlk Uygulama Spring Boot'a Giriş ve İlk Adımlar

  • Spring Framework ve Spring Boot nedir? Farkları nelerdir?
  • Spring Initializr kullanımı (Maven vs Gradle)
  • IoC (Inversion of Control) ve Dependency Injection (Bağımlılık Enjeksiyonu)
  • İlk Hello World REST API uygulaması
  • Application Properties ve YAMl yapılandırması
  • Pratik: Hello API Projesi 📖 Parça 1'i Oku →

📚 Parça 2: Controllers ve Rest API Temelleri Profesyonel API Endpoint'leri Oluşturma

  • RESTful prensipleri ve Controller mantığı (@RestController, @RequestMapping)
  • HTTP Metodları (GET, POST, PUT, PATCH, DELETE)
  • URL Parametreleri (@PathVariable, @RequestParam)
  • İstek gövdesi işleme (@RequestBody ve ResponseEntity)
  • Lombok kütüphanesi ile boilerplate kodlardan kurtulma
  • Pratik: Kütüphane API v1 (Memory-based) 📖 Parça 2'yi Oku →

📚 Parça 3: DTO Pattern ve Validation Veri Transferi ve Doğrulama

  • DTO (Data Transfer Object) Pattern nedir ve neden kullanılır?
  • MapStruct veya ModelMapper ile Object Mapping
  • Hibernate Validator / Spring Validation ( @Valid, @NotBlank, @Size vb.)
  • @ControllerAdvice ve @ExceptionHandler ile Global Hata Yönetimi (Global Exception Handling)
  • Pratik: Kütüphane API v2 📖 Parça 3'ü Oku →

📚 Parça 4: Database Entegrasyonu ve JPA Veritabanı Yönetimi ve ORM Katmanı

  • Spring Data JPA ve Hibernate temelleri
  • Veritabanı konfigürasyonu (PostgreSQL / MySQL)
  • Entity sınıfları oluşturma (@Entity, @Id, @Column)
  • JpaRepository arabirimi ve türetilmiş sorgular (Derived Queries)
  • İlişkiler: OneToOne, OneToMany, ManyToOne, ManyToMany
  • Pratik: Kütüphane API v3 (Veritabanı entegreli) 📖 Parça 4'ü Oku →

📚 Parça 5: Service Layer ve İş Mantığı (Business Logic) Katmanlı Mimari ve Transaction Yönetimi

  • Service katmanı oluşturma (@Service)
  • Separation of Concerns (Sorumlulukların ayrılması)
  • Pagination ve Sorting (Sayfalama ve Sıralama)
  • Veri tutarlılığı ve @Transactional kullanımı
  • Pratik: Kütüphane API v4 📖 Parça 5'i Oku →

📂 2. Bölüm (Advanced)

📚 Parça 6: Database Migrations (Sürüm Kontrolü) Veritabanı Şema Yönetimi

  • Neden veritabanı versiyon kontrolüne ihtiyacımız var?
  • Flyway (veya Liquibase) kurulumu ve entegrasyonu
  • Migration scriptleri (SQL) yazma
  • Seed data (Başlangıç verisi) oluşturma 📖 Parça 6'yı Oku →

📚 Parça 7: Spring Security ve JWT Güvenlik ve Kimlik Doğrulama

  • Spring Security mimarisine giriş
  • Filter Chain ve Security Config yapılandırması
  • JWT (JSON Web Token) ile Stateless Authentication
  • Role-based Authorization (@PreAuthorize, @Secured)
  • Parola şifreleme (BCryptPasswordEncoder)
  • Pratik: Kütüphane API v5 (Güvenli Sürüm) 📖 Parça 7'yi Oku →

📚 Parça 8: İleri Seviye Özellikler Uygulamayı Zenginleştirme

  • Asenkron işlemler (@Async)
  • Zamanlanmış görevler (@Scheduled)
  • Dosya Yükleme / İndirme (Multipart File Upload)
  • Spring Mail ile Email gönderimi
  • Pratik: Fatura oluşturma ve mail atma servisi 📖 Parça 8'i Oku →

📚 Parça 9: Caching ve Performans Önbellekleme Stratejileri

  • Spring Cache Abstraction (@EnableCaching, @Cacheable, @CacheEvict)
  • Redis Entegrasyonu
  • Redis ile Distributed Caching
  • Cache geçersiz kılma stratejileri 📖 Parça 9'u Oku →

📚 Parça 10: Testing (Test ve Kalite Güvencesi) Güvenilir Kod Yazma

  • Unit Testing (JUnit 5 ve Mockito)
  • Service katmanı testleri
  • Integration Testing (@SpringBootTest)
  • Controller Testleri (MockMvc)
  • Repository Testleri (@DataJpaTest)
  • Testcontainers kullanımı 📖 Parça 10'u Oku →

📚 Parça 11: Deployment ve Docker Canlı Ortama Hazırlık

  • Spring Boot uygulamasını Dockerize etme (Dockerfile)
  • Docker Compose ile PostgreSQL, Redis ve Uygulamayı ayağa kaldırma
  • Multi-stage build optimizasyonu
  • Environment variables (Ortam değişkenleri) yönetimi 📖 Parça 11'i Oku →

📚 Parça 12: CI/CD ve Monitoring Sürekli Entegrasyon ve İzleme

  • GitHub Actions ile CI/CD Pipeline oluşturma
  • Spring Boot Actuator ile metrik takibi
  • Prometheus ve Grafana entegrasyonu (Basit seviye)
  • Loglama stratejileri (Logback, SLF4J) 📖 Parça 12'yi Oku →

📚 Parça 13: E-Commerce API Projesi (Gerçek Dünya Uygulaması) Final Projesi

  • Tam özellikli E-Ticaret backend mimarisi
  • Ürün, Kategori ve Stok yönetimi
  • Sepet ve Sipariş state yönetimi
  • Kredi kartı ödeme simülasyonu
  • Admin yetkilendirmeleri ve raporlama endpointleri 📖 Parça 13'ü Oku →

🚀 Hızlı Başlangıç

Gereksinimler

  • Java 17 veya üzeri (Önerilen: Java 21)
  • Maven (veya Gradle)
  • IDE (IntelliJ IDEA, Eclipse veya VS Code)
  • Docker ve Docker Compose (İleriki bölümler için)

Kurulum ve İlk Uygulama

Projeyi klonlayın ve ilk uygulamanızı çalıştırın:

# Repoyu klonlayın
git clone https://github.com/Firatasi/java-springboot-tutorial.git
cd java-springboot-tutorial/1-basics
# Maven ile projeyi derleyin ve çalıştırın
./mvnw spring-boot:run

Tarayıcınızda test edin: http://localhost:8080/api/hello

🛠️ Teknoloji Stack

Bu seri boyunca kurumsal düzeyde kabul görmüş güncel teknolojiler kullanılacaktır:

  • Framework: Spring Boot 3.2+
  • Dil: Java 17/21
  • Database: PostgreSQL
  • ORM: Spring Data JPA / Hibernate
  • Migration: Flyway
  • Security: Spring Security 6 & JWT
  • Mapping: MapStruct / Lombok
  • Testing: JUnit 5, Mockito, Testcontainers
  • Caching: Redis
  • Containerization: Docker & Docker Compose
  • Monitoring: Spring Boot Actuator, Prometheus, Grafana

🤝 Katkıda Bulunma

Bu rehber serisine katkıda bulunmak isterseniz:

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. Pull Request açın

Katkı Türleri

🐛 Hata düzeltmeleri
📝 Dokümantasyon iyileştirmeleri
✨ Yeni örnekler ve projeler
🔧 Kod iyileştirmeleri
🌐 Çeviri desteği

⭐ Yıldız Verin

Bu rehber serisini beğendiyseniz, GitHub'da yıldız vermeyi unutmayın! ⭐

📞 İletişim

Sorularınız, önerileriniz veya profesyonel bağlantı için:

  • GitHub Issues açabilirsiniz
  • Pull Request gönderebilirsiniz

📄 Lisans

Bu proje MIT Lisansı ile lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakabilirsiniz.

🎓 Öğrenme İpuçları

Etkili Öğrenme İçin: ✅ Her parçayı sırayla takip edin ✅ Kod örneklerini kendiniz yazın ✅ Pratik projeleri tamamlayın ✅ Dokümantasyonu okuyun ✅ Toplulukla etkileşimde bulunun

Pratik Yapın:

  • Her parçadaki örnekleri çalıştırın
  • Kendi projelerinizi geliştirin
  • GitHub'da paylaşın
  • Geri bildirim alın

🗺️ Seri Haritası

Parça 1: Temeller ve İlk Uygulama ↓ Parça 2: Controllers ve Rest API ↓ Parça 3: DTO Pattern ve Validation ↓ Parça 4: Database Entegrasyonu ve JPA ↓ Parça 5: Service Layer ve İş Mantığı ↓ Parça 6: Database Migrations ↓ Parça 7: Spring Security ve JWT ↓ Parça 8: İleri Seviye Özellikler ↓ Parça 9: Caching ve Performans ↓ Parça 10: Testing ↓ Parça 11: Deployment ve Docker ↓ Parça 12: CI/CD ve Monitoring ↓ Parça 13: E-Commerce API Projesi

🎉 Başarılar!

Spring Boot öğrenme yolculuğunuzda başarılar dileriz!

Unutmayın:

  • Sürekli pratik yapın
  • Dokümantasyonu okuyun
  • Toplulukla etkileşimde bulunun
  • Kod kalitesine önem verin
  • Testing'i ihmal etmeyin
  • Security'yi ciddiye alın

Hazırsanız, Parça 1'den başlayın! 🚀


Toplam Parça Sayısı: 13
Son Güncelleme: 2026
Versiyon: 1.0
Dil: Türkçe

About

Sıfırdan ileri seviyeye, 13 bölümden oluşan kapsamlı Türkçe Spring Boot ve modern Java backend geliştirme rehberi.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors