JAVA: LEVERAGING REFLECTION TO BUILD DYNAMIC PROXIES & UNIT TESTS EĞİTİMİ

Dinamik proxy ve test araçları geliştirin

java.lang.reflect.Proxy, InvocationHandler, AOP benzeri kesişen ilgiler, mock üretimi, test discovery, anotasyonlu test çalıştırıcı ve ByteBuddy tanıtımı

Reflection ile dinamik proxy ve test araçları: Proxy.newProxyInstance, InvocationHandler, loglama/önbellek/retry proxy'leri, anotasyonlu davranış, mock üretimi ve JUnit benzeri mini test çalıştırıcı.

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

Eğitim Hakkında

Reflection ile proxy ve mini test çerçevesi yazımı

Eğitim, reflection'ın en güçlü iki uygulamasını işler. Proxy.newProxyInstance ve InvocationHandler ile dinamik proxy, loglama, önbellek ve işlem sınırı gibi kesişen ilgiler (AOP benzeri), kendi mock nesne üretici, JDK proxy ile CGLIB/ByteBuddy farkı, default metot ve proxy, ayrıca anotasyonlu mini JUnit benzeri test çalıştırıcı, test keşfi, @Before/@After ve beklenen istisna doğrulaması yazımı uygulamalıdır.

Süre ve Format

2 Gün. Her gün dört modül; 1. gün Dinamik Proxy; 2. gün Reflection ile Test Araçları.

Seviye

İleri Seviye — Dinamik proxy ve reflection tabanlı test araçları geliştirme

Öğrenme Metodu

Katılımcılar loglama ve süre ölçen bir dinamik proxy ile anotasyon tabanlı çalışan küçük bir test çerçevesini sıfırdan yazar.

Neden Bu Eğitim?

🪞Dinamik Proxy

Arayüz tabanlı proxy ile kodu değiştirmeden davranış eklersiniz.

🧪Test Çerçevesi Mantığı

JUnit benzeri bir çalıştırıcıyı yazarak çerçevelerin içini öğrenirsiniz.

🎭Mock Üretimi

Reflection ile kendi mock nesnelerinizi oluşturursunuz.

Anahtar Konular

Java dinamik proxyInvocationHandlerJava reflection testJava mock üretimiJava AOP proxyByteBuddy CGLIBJava mini test çerçevesiJava annotation processingJUnit iç yapısıJava reflection
“Çerçeveyi yazmayı bilen, onu kullanmayı da hakkıyla bilir.”

Ön Koşullar

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

1
Reflection Temeli

Method.invoke ve Field erişimi bilinmelidir.

2
Java İleri Temeller

Generics, annotation ve lambda bilgisi gerekir.

3
JDK 17 ve Maven

JDK 17, Maven ve JUnit 5 ile çalışılacak ortam hazır olmalıdır.

4
Tasarım Desenleri

Proxy ve Decorator desenlerine aşinalık faydalı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ı dinamik proxy ile loglama, önbellek ve işlem sınırı gibi ilgileri koddan ayırır.
Modül 1
Proxy Temeli
  • Proxy.newProxyInstance parametreleri
  • Arayüz zorunluluğu
  • InvocationHandler.invoke
  • proxy, method, args üçlüsü
  • Proxy sınıfı üretimi ve adı
  • equals, hashCode, toString çağrıları
Modül 2
Kesişen İlgiler
  • Loglama proxy'si
  • Süre ölçme (timing)
  • Önbellek proxy'si
  • Yeniden deneme (retry)
  • Yetkilendirme kontrolü
  • Proxy zincirleme
Modül 3
Anotasyonla Proxy
  • @Transactional benzeri anotasyon
  • Metot üzerindeki anotasyonu okuma
  • Transaction sınırı simülasyonu
  • İstisna ve rollback
  • Spring AOP'nin proxy kullanımı
  • Self-invocation sorunu
Modül 4
JDK Proxy Sınırları
  • Sınıf tabanlı proxy gerekliliği
  • CGLIB ve ByteBuddy tanıtımı
  • default metot proxy'si
  • Performans ve JIT
  • GraalVM native image uyumu
  • Tür güvenliği ve çıkış
Günün hedefiKatılımcı reflection ile test keşfi yapan, mock üreten bir mini test çerçevesi kurar.
Modül 1
Test Keşfi
  • Sınıf yolunu tarama
  • @Test anotasyonu tanımlama
  • Paket tarama ve filtreleme
  • Test metodu imza doğrulama
  • Keşif sonuç raporu
  • Sıralama ve izolasyon
Modül 2
Test Çalıştırıcı
  • Test örneği oluşturma
  • @Before / @After yaşam döngüsü
  • Assertion yardımcıları
  • expected istisna doğrulaması
  • Sonuç toplama ve rapor
  • Parametreli test fikri
Modül 3
Mock Üretimi
  • Arayüz mock'u proxy ile
  • Çağrı kayıt (verify)
  • when / thenReturn sözdizimi
  • Argüman eşleyiciler
  • Çağrı sayısı doğrulama
  • Mockito ile karşılaştırma
Modül 4
Entegrasyon ve Uygulama
  • Mini çerçeveyi Maven plugin'e bağlama
  • JUnit 5 Extension API ile karşılaştırma
  • Test verisi enjeksiyonu
  • Hata raporlarında yığın izi
  • Proje: kendi test çerçevem
  • Kod gözden geçirme ve genişletme

Eğitim Kazanımları

Program sonunda katılımcılar:

🎯
Proxy Oluşturma

Proxy.newProxyInstance ile dinamik proxy yazabilirsiniz.

🧩
Kesişen İlgiler

Loglama, önbellek ve retry gibi ilgileri proxy ile ayırabilirsiniz.

🛠️
Anotasyonlu Davranış

Anotasyonu okuyup davranış ekleyen proxy kurabilirsiniz.

🔍
Proxy Sınırları

JDK proxy, CGLIB ve ByteBuddy farklarını açıklayabilirsiniz.

⚙️
Test Keşfi

Anotasyonlu test metotlarını reflection ile keşfedebilirsiniz.

📦
Test Çalıştırıcı

Before/After ve beklenen istisna destekli çalıştırıcı yazabilirsiniz.

🚀
Mock Üretimi

Proxy tabanlı mock ve verify mekanizması kurabilirsiniz.

✅
Çerçeve Anlayışı

Spring AOP ve JUnit'in iç mantığını kavrayabilirsiniz.

Kimler İçin Uygundur?

  • Framework mantığını derinlemesine öğrenmek isteyen
  • test
  • altyapı araçları geliştiren ileri seviye Java geliştiricileri içindir

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Framework mantığını derinlemesine öğrenmek isteyen, test ve altyapı araçları geliştiren ileri seviye Java geliştiricileri içindir.
Önceki reflection eğitimleri şart mı?
Method.invoke ve Field erişimi bilinmelidir; ilgili eğitim önerilir.
Spring AOP ile ilişkisi nedir?
Spring AOP JDK proxy veya CGLIB kullanır; bu mantık sıfırdan yazılarak gösterilir.
Mockito yerine bu mu kullanılır?
Hayır; amaç çerçevelerin iç çalışmasını öğrenmektir.
Sınıf tabanlı proxy yapılır mı?
ByteBuddy ve CGLIB tanıtılır; ana uygulama JDK proxy üzerindedir.

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. Java: Leveraging Reflection to Build Dynamic Proxies & Unit Sertifika Kodu DV-2026XX00 Tarih 27.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

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

Bu Eğitimle Birlikte Tercih Edilenler

Java ve JVMAdvanced Jakarta Servlets: Request/Response Wrappers and Dispatcher Types Eğitimi
Yazılım Geliştirme Eğitimleri

Advanced Jakarta Servlets: Request/Response Wrappers and Dispatcher Types Eğitimi

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

Servlet wrapper ve dispatcher eğitimi: HttpServletRequestWrapper, ResponseWrapper, body önbellekleme, forward/include farkları ve DispatcherType filtre eşlemele

Detayları Gör →
Java ve JVMAdvanced Jakarta Servlets: Servlet Chaining Techniques Eğitimi
Yazılım Geliştirme Eğitimleri

Advanced Jakarta Servlets: Servlet Chaining Techniques Eğitimi

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

Servlet zincirleme teknikleri: RequestDispatcher forward/include, sendRedirect, Front Controller, servlet-JSP MVC, PRG deseni ve çok adımlı sipariş akışı.

Detayları Gör →
Java ve JVMAdvanced Jakarta Servlets: Servlet Context Listeners Eğitimi
Yazılım Geliştirme Eğitimleri

Advanced Jakarta Servlets: Servlet Context Listeners Eğitimi

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

Servlet Context Listener eğitimi: ServletContextListener, @WebListener, havuz başlatma, zamanlanmış görevler, temiz kapanış ve ClassLoader sızıntılarını önleme.

Detayları Gör →
Java ve JVMAdvanced Jakarta Servlets: Servlet Request Listeners Eğitimi
Yazılım Geliştirme Eğitimleri

Advanced Jakarta Servlets: Servlet Request Listeners Eğitimi

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

Servlet Request Listener eğitimi: ServletRequestListener, attribute listener, istek süresi ölçümü, MDC loglama, Micrometer metrikleri ve async senaryolar.

Detayları Gör →
Java ve JVMAdvanced Java and DSA Applied Program Eğitimi
Yazılım Geliştirme Eğitimleri

Advanced Java and DSA Applied Program Eğitimi

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

Advanced Java ve DSA uygulamalı program: generics, Stream, eşzamanlılık, JVM, ağaç/graf/heap algoritmaları, dinamik programlama ve JMH ölçümlü bitirme projesi.

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