SPRING EXPRESSION LANGUAGE EĞİTİMİ

SpEL ile Spring yapılandırmasını dinamik hale getirin

SpEL ifadeleri, ExpressionParser, EvaluationContext, @Value, Spring Security ve Spring Data ifadeleri uygulamalı işlenir

SpEL eğitimi; ifade sözdizimi, koleksiyon seçimi ve projeksiyon, @Value, @PreAuthorize, @Cacheable, Spring Data ifadeleri ve SpEL injection risklerine karşı korunmayı kapsar.

2 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

Spring Expression Language ile çalışma zamanı ifadeleri

Eğitim, Spring Expression Language'in sözdizimini ve kullanım alanlarını işler. ExpressionParser ve StandardEvaluationContext ile ifade çözümleme, literal, operatör, koleksiyon seçimi ve projeksiyonu, bean referansı, @Value("#{...}") ile özellik enjeksiyonu, @PreAuthorize ve @Cacheable koşulları, Spring Data @Query içinde SpEL ve ifade enjeksiyonu risklerinin önlenmesi uygulamalı ele alınır.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün SpEL Sözdizimi ve API; 2. gün Spring Bileşenlerinde SpEL ve Güvenlik.

Seviye

Orta Seviye — SpEL sözdizimi, bean referansları, güvenlik ve veri erişiminde ifade kullanımı

Öğrenme Metodu

Katılımcılar küçük konsol örnekleri ve bir Spring Boot uygulaması üzerinde ifadeleri yazar, çıktıyı birim testleriyle doğrular.

Neden Bu Eğitim?

🧮İfade Gücü

Koleksiyon seçme, projeksiyon ve koşullu ifadeleri tek satırda yazmayı öğrenirsiniz.

🔐Dinamik Yetki

Metot güvenliğinde kullanıcı ve parametreye bağlı yetki kuralları tanımlarsınız.

🛡️Güvenli Kullanım

Kullanıcı girdisinin ifade olarak çözülmesinden doğan riskleri tanır ve engellersiniz.

Anahtar Konular

spring expression languagespelspel örnekleri@value spelpreauthorize spelevaluationcontextspel injectionspring cacheable conditionspring güvenlik ifadeleri
“İfade ne kadar güçlüyse, sınırı o kadar net çizilmelidir.”

Ön Koşullar

Eğitimden verim almak için faydalı olacak bilgi ve ortam gereksinimleri

1
Spring Core bilgisi

Bean tanımı, @Component ve @Value kullanımı bilinmelidir.

2
Java koleksiyonları

List, Map ve nesne özellikleri üzerinde rahat çalışabilmek gerekir.

3
Birim test alışkanlığı

JUnit ile basit test yazma deneyimi faydalıdır.

4
Çalışma ortamı

JDK 17, Maven ve IntelliJ IDEA kurulu olmalıdır.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı SpEL ifadelerini yazar ve API üzerinden güvenle değerlendirir.
Modül 1
Temel Sözdizimi
  • Literal değerler, string ve sayı ifadeleri
  • Özellik, metot ve yapıcı çağrıları: T(java.lang.Math).random()
  • Aritmetik, ilişkisel ve mantıksal operatörler
  • Ternary, Elvis (?:) ve safe navigation (?.)
  • matches operatörü ile regex eşleşmesi
  • T() operatörü ile statik üyelere erişim
Modül 2
Parser ve Context
  • SpelExpressionParser ile ifade çözümleme
  • StandardEvaluationContext ve root nesne
  • setVariable ile #değişken tanımlama
  • registerFunction ile özel fonksiyon
  • Hazır ifade önbelleği ve SpelParserConfiguration
  • SimpleEvaluationContext ile kısıtlı değerlendirme
Modül 3
Koleksiyon İfadeleri
  • Liste ve Map elemanına indeksle erişim
  • Seçim: .?[...], .^[...], .$[...]
  • Projeksiyon: .![...] ile alan çıkarma
  • Inline list ve map tanımı
  • Koleksiyon dönüşümlerinde null güvenliği
  • İç içe nesne grafiğinde gezinme
Modül 4
Tip Dönüşümü ve Hata
  • ConversionService ve ifade sonucunun dönüştürülmesi
  • SpelEvaluationException türleri
  • Derleme modu: SpelCompilerMode.IMMEDIATE
  • Performans ölçümü ve derleme sınırları
  • İfade testlerinde AssertJ kullanımı
  • Hata mesajlarından ifadeyi ayıklama
Günün hedefiKatılımcı SpEL'i anotasyonlarda kullanır ve ifade enjeksiyonu risklerini kapatır.
Modül 1
Yapılandırmada SpEL
  • @Value("#{systemProperties['user.home']}") kullanımı
  • Bean referansı: #{beanAdı.özellik}
  • Ortam değişkeni ve Environment erişimi
  • @Value içinde varsayılan değer: ${...:varsayılan}
  • Placeholder ile SpEL farkı
  • XML ve Java config'de ifade kullanımı
Modül 2
Güvenlik ve Önbellek
  • @PreAuthorize("hasRole('ADMIN')") örnekleri
  • Parametreye bağlı kural: #id == authentication.principal.id
  • @PostAuthorize ile dönüş değeri kontrolü
  • @Cacheable(condition, unless) ifadeleri
  • Özel PermissionEvaluator ile hasPermission
  • MethodSecurityExpressionHandler özelleştirme
Modül 3
Veri ve Zamanlama
  • Spring Data @Query içinde :#{#entityName}
  • SpEL ile parametre ifadeleri :#{#param.alan}
  • @Scheduled cron değerini özellikten okuma
  • @ConditionalOnExpression kullanımı
  • @EventListener(condition=...) ifadeleri
  • Spring Integration'da SpEL yönlendirme
Modül 4
Güvenlik Riskleri
  • Kullanıcı girdisinin ifade olarak çözülmesi riski
  • SpEL injection örnekleri ve etkileri
  • SimpleEvaluationContext ile saldırı yüzeyini daraltma
  • Girdi beyaz listesi ve doğrulama
  • Güvenlik açığı bulunan sürümler ve güncelleme
  • Kod incelemesinde SpEL kontrol listesi

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
Ifade Yazımı

SpEL'de operatör, koleksiyon seçimi ve projeksiyon ifadelerini yazabilirsiniz.

✅
API Kullanımı

ExpressionParser ve EvaluationContext ile ifadeleri kod içinde değerlendirebilirsiniz.

✅
Yapılandırma

@Value ve bean referanslarıyla dinamik yapılandırma kurabilirsiniz.

✅
Metot Güvenliği

@PreAuthorize ve PermissionEvaluator ile ince taneli yetki kuralları yazabilirsiniz.

✅
Önbellek Koşulları

@Cacheable koşullarını SpEL ile tanımlayabilirsiniz.

✅
Veri Sorguları

Spring Data sorgularında SpEL parametreleri kullanabilirsiniz.

✅
Güvenli Bağlam

SimpleEvaluationContext ile ifade enjeksiyonunu sınırlayabilirsiniz.

✅
İfade Testi

SpEL ifadelerini birim testlerle doğrulayabilirsiniz.

Kimler İçin Uygundur?

  • Spring ile çalışan
  • yapılandırmayı
  • yetkilendirmeyi dinamik ifadelerle yönetmek isteyen Java geliştiricileri için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Spring ile çalışan, yapılandırmayı ve yetkilendirmeyi dinamik ifadelerle yönetmek isteyen Java geliştiricileri için uygundur.
SpEL ve property placeholder aynı şey mi?
Hayır; ${...} yalnızca özellik değeri yerleştirir, #{...} ise çalışma zamanında ifade değerlendirir. Fark ve birlikte kullanım uygulamalı gösterilir.
SpEL performans sorunu çıkarır mı?
Sık çalışan ifadelerde derleme modu ve önbellek kullanılır; ölçüm örnekleri eğitimde yer alır.
Güvenlik konusu ne kadar işlenir?
İkinci günün son modülü ifade enjeksiyonuna ayrılmıştır; saldırı örnekleri ve SimpleEvaluationContext ile önlem uygulamalı yapılır.
Sertifika verilir mi?
Digital Vizyon Akademi Katılım ve Başarı Sertifikası verilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Spring Expression Language Eğitimi Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre2 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMJava Developer Professional: File I/O, Modules, Localization, and Logging Eğitimi
Yazılım Geliştirme Eğitimleri

Java Developer Professional: File I/O, Modules, Localization, and Logging Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

Java Professional: Dosya G/Ç, Modüller, Yerelleştirme ve Loglama eğitimi: Path ve Files API, stream tabanlı I/O, serileştirme, Console, JPMS module-info, jlink,

Detayları Gör →
Java ve JVMJava Developer Professional: Lambda Expressions and Functional Programming Eğitimi
Yazılım Geliştirme Eğitimleri

Java Developer Professional: Lambda Expressions and Functional Programming Eğitimi

2 günİleriOnline / Yüz Yüze / Hibrit

Java Professional: Lambda ve Fonksiyonel Programlama eğitimi: Predicate, Function, Supplier, Consumer, UnaryOperator, lambda ve method reference, Stream ara ve.

Detayları Gör →
Java ve JVMJava Developer Professional: Records, Sealed Classes, and Nested Classes Eğitimi
Yazılım Geliştirme Eğitimleri

Java Developer Professional: Records, Sealed Classes, and Nested Classes Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java Developer Professional: Records, Sealed Classes, and Nested Classes eğitimi: modern Java ile immutable veri ve kapalı tip hiyerarşileri. Uygulamalı 2 gün p

Detayları Gör →
Java ve JVMJava Developer Professional: The Stream API Eğitimi
Yazılım Geliştirme Eğitimleri

Java Developer Professional: The Stream API Eğitimi

2 günOrtaOnline / Yüz Yüze / Hibrit

Java Developer Professional: The Stream API eğitimi: stream pipeline tasarımı ve Collectors ustalığı. Uygulamalı 2 gün, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
Java ve JVMJava Development Certificate Program Eğitimi
Yazılım Geliştirme Eğitimleri

Java Development Certificate Program Eğitimi

4 günTemelOnline / Yüz Yüze / Hibrit

Java Development Certificate Program eğitimi: java dilini baştan sona uygulamalı öğrenme programı. Uygulamalı 4 gün, DVA Katılım ve Başarı Sertifikası.

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn