Günlük Java / Spring Ekosistem Raporu
Tarih: 27 Haziran 2026
Tarama zamanı: 27 Haziran 2026 09:08 TSİ
Odak: son OSS bakım hatlarının altındaki sessiz correctness düzeltmeleri, MongoDB tabanlı Spring Batch metadata yolunun üretim olgunlaşması ve JDK yükseltmelerinde varsayılan GC davranışının değişecek olması
Tarama notu: Spring Blog, Spring project pages, ilgili Spring GitHub release notları, Inside Java, OpenJDK JEP 523, Oracle Java / dev.java yüzeyi, InfoQ Java, Baeldung, Josh Long’ın This Week in Spring yazısı, Gunnar Morling blogu, ve Burak KUTBAY blogu tarandı. 26 Haziran raporundaki Boot 3.5.x destek kapanışı ve 24 Haziran hattındaki schema-first AI teması bilerek tekrar edilmedi; bugünün raporu davranış değiştiren küçük sürüm düzeltmeleri ve operasyonel taban etkileri üzerine kuruldu. InfoQ, Gunnar Morling ve Burak KUTBAY tarafında bugün resmi Spring/OpenJDK sinyalinin önüne geçen daha güçlü yeni bir production kararı çıkmadı; bu cümle, taranan kaynakların birlikte değerlendirilmesinden yapılan çıkarımdır.
Öne Çıkan Başlıklar
- Spring Data
2025.0.13ve onu Boot3.5.16içine taşıyan Spring Boot release’i, yalnız bakım hattı kapanışı değil; miras alan maskelemesi veJPQL MEMBER OFparse hatası gibi sessiz correctness sorunlarını da kapatıyor. - Spring AMQP
3.2.12, RabbitMQ3.13classic queue deklarasyon regresyonunu ve bozukx-deathheader kaynaklıClassCastExceptionyolunu düzeltiyor; event-driven Spring servislerinde patch-floor artık daha net. - Spring Boot 4.1 + Spring Batch MongoDB starter ile Spring Batch
6.0.4birleşince, “Batch için yine de ayrı bir SQL metadata veritabanı gerekir” varsayımı pratik olarak zayıflıyor. - OpenJDK JEP 523 gerçekleşirse JDK
27altında varsayılan GC seçimi küçük ve kısıtlı ortamlarda da G1 olacak. JDK 26 performans iyileştirmeleri ile birlikte bakıldığında, explicit GC seçmeyen Spring servisleri için bu sessiz ama önemli bir runtime davranış kayması. - Spring AI 2.0 structured output retry modeli ile tool-calling advisor zinciri üretim güvenilirliği açısından anlamlı, fakat genel Spring ekipleri için bugün birincil konu değil; aktif AI backlog’u olanlar için düşük-orta öncelikli izleme maddesi.
Kritik Güncellemeler
1. Son OSS bakım hattı, beklenenden daha fazla correctness yükü taşıyor
Spring Data 2025.0.13 resmi olarak 3.5.x jenerasyonunun son OSS hattı olarak işaretlendi, ancak asıl önemli kısım alt sürüm notlarında görünüyor:
- Spring Data Commons
3.5.13,TypeDiscoverertarafında superclass/subclass field masking davranışını düzeltiyor. - Spring Data JPA
3.5.13,MEMBER OFiçinde tek karakterli string literal parse hatasını düzeltiyor ve Hibernate’i6.6.53.Finalseviyesine taşıyor.
Bu, migration bekleyen ekipler için önemli çünkü “zaten kısa süre sonra 4.x’e geçeceğiz” diye ertelenen patch, gerçekte üretim davranışını etkileyen sorgu ve mapping düzeltileri içeriyor.
2. RabbitMQ 3.13 kullanan Spring AMQP servisleri için gerçek patch-floor oluştu
Spring AMQP 3.2.12 üç önemli madde içeriyor:
- bozuk
x-deathheader geldiğindeDefaultMessagePropertiesConverter.toMessageProperties()içinde oluşanClassCastException 3.2.11regresyonu nedeniylex-queue-leader-locatorayarıyla classic queue deklarasyonunun RabbitMQ3.13altında bozulması- management URL encoding düzeltmesi
Spring Boot 3.5.16 bu sürümü doğrudan içeri alıyor. Sonuç olarak Boot 3.5.x üzerindeki messaging ekipleri için bu sürüm, yalnız support-line sonu değil aynı zamanda pratik davranış tabanı.
3. MongoDB-backed Spring Batch artık “demo” değil, operasyonel bir seçenek
Josh Long’ın Spring Boot 4.1 yazısı iki kritik pratik sinyal veriyor:
- yeni
spring-boot-starter-batch-data-mongodbileJobRepositorymetadata’sını MongoDB’de ilk sınıf Boot deneyimiyle çalıştırmak mümkün - MongoDB tarafında transaction gerektiği için replica set zorunluluğu ve
spring.batch.data.mongodb.schema.initialize=truegibi operational ayrıntılar netleşmiş durumda
Buna ek olarak Spring Batch 6.0.4:
MongoStepExecutionDao#getLastStepExecutioniçin filtreleme/sıralamayı veritabanı seviyesine indiriyorMongoJobExecutionDao.findRunningJobExecutionsiçindeki N+1 MongoDB sorgu davranışını hedefliyorSimpleJobRepository.update(StepExecution)performans hattına dokunuyor
Bu kombinasyonun anlamı şu: SQL olmayan batch metadata yolu artık sadece var değil, üretimde darboğaz çıkarması muhtemel ilk Mongo erişim pürüzleri de aktif biçimde törpüleniyor.
4. JDK 27 ile varsayılan GC seçimi değişirse küçük pod davranışı sessizce kayabilir
JEP 523, komut satırında GC seçimi yapılmadığında HotSpot’un her ortamda G1 seçmesini hedefliyor. JEP açıkça şunu söylüyor:
- daha önce Serial seçilen düşük CPU / düşük bellek senaryolarında da artık G1 düşünülüyor
- amaç, throughput/latency/footprint/startup metriklerinde anlamlı gerileme olmadan bu varsayılanı sadeleştirmek
Inside Java’nın JDK 26 performans yazısı da G1 için referans-ağır iş yüklerinde 5-15% throughput kazancı ve daha düşük senkronizasyon maliyetinden bahsediyor. Bu iki sinyal birlikte okunduğunda:
- küçük Kubernetes pod’larında varsayılan GC’ye bırakılmış Spring Boot servisleri sürüm yükseltmesiyle aynı JVM parametreleri altında farklı davranabilir
- bu nedenle JDK
27değerlendirmesi sırasında “GC seçmedik, JVM halleder” yaklaşımı zayıflıyor
Trendler ve Sinyaller
Trend Kümesi 1: Bakım hattı sonları artık yalnız support politikası değil, correctness paketleri de taşıyor
Tekrarlayan sinyal:
- Boot
3.5.16içindeki Data/AMQP yükseltmeleri - Data Commons/JPA altındaki küçük ama davranış etkili düzeltmeler
- AMQP tarafındaki RabbitMQ
3.13regresyon onarımı
Çıkarım:
- Son OSS bakım hattını yalnız “güvenlik ve destek” penceresi gibi görmek eksik.
- Migration bekleyen ekipler bile patch-floor’u ciddiye almak zorunda.
Trend Kümesi 2: Spring tarafında SQL olmayan operasyonel yollar daha ciddi hale geliyor
Tekrarlayan sinyal:
- Batch metadata için MongoDB starter
- Mongo DAO performans ve N+1 düzeltmeleri
- Boot tarafında compose ve observability örneğinin doğrudan verilmesi
Çıkarım:
- Spring ekibi document-store kullanan platformlara artık “arka kapı” değil doğrudan operasyonel deneyim kuruyor.
- Bu, özellikle platform ekiplerinin batch metadata için gereksiz SQL bağımlılığı taşımasını sorgulatmalı.
Trend Kümesi 3: OpenJDK, varsayılan runtime davranışlarını daha akıllı hale getiriyor; buna güvenmek değil, test etmek gerekiyor
Tekrarlayan sinyal:
- JDK
26G1 throughput/senkronizasyon iyileştirmeleri - JEP 523 ile varsayılan GC seçiminin sadeleşmesi
- Better Tools for Immutable Data ile immutable/lazy initialization yönünün güçlenmesi
Çıkarım:
- JVM artık daha iyi default’lar sunuyor, ama bu durum uygulama sahiplerinin benchmark sorumluluğunu kaldırmıyor.
- Özellikle küçük container, kısa startup ve yoğun event/messaging iş yüklerinde JVM default’larının etkisi artık daha görünür olacak.
Trend Kümesi 4: Spring AI, "gizli loop"lardan gözlemlenebilir yapı taşlarına geçiyor
Tekrarlayan sinyal:
validateSchema()ile structured output retry- tool calling loop’un advisor zincirine çıkarılması
Çıkarım:
- AI kullanan Spring ekipleri için asıl değer yeni model entegrasyonu değil, retry/loop/ara adım gözlemlenebilirliğinin framework içine alınması.
- Bu sinyal yüksek profilli olsa da bugün tüm Java ekiplerinin önceliği değil; aktif AI backlog’u olmayan ekipler için ikincil.
Araçlar ve Kütüphaneler
- Spring Batch
6.0.4: MongoJobRepositorysorgu kalıplarını ve repository performansını iyileştiriyor. Batch’i MongoDB metadata ile çalıştırmayı düşünen ekipler için anlamlı. - Spring AMQP
3.2.12: RabbitMQ3.13classic queue kullanan sistemlerde doğrudan operasyonel düzeltme taşıyor. - Spring Data Commons
3.5.13ve Spring Data JPA3.5.13: Küçük görünen ama sessiz veri erişim hatalarını kapatan sürümler. - Düşük öncelik: Spring AI 2.0 structured output iyileştirmeleri ve tool-calling mimarisi, aktif AI ürünü geliştiren ekipler için güçlü.
- Bugün yeni, geniş etkili bağımsız bir Java OSS çerçevesi çıkmış görünmüyor; değer daha çok mevcut hatların nokta sürümlerinde ve runtime davranışlarında.
Java / Spring Geliştiricileri İçin Etkiler
- Spring Boot
3.5.xve RabbitMQ3.13kullanıyorsanız,3.5.16/AMQP3.2.12kombinasyonunu migration’dan bağımsız ele alın. Özellikle dead-letter ve classic queue deklarasyon senaryolarını yeniden oynatın. - Spring Data tarafında miras alan maskelemesi, reflection tabanlı mapping veya köşeli JPQL/EQL sorguları kullanıyorsanız,
3.5.13sonrası davranış farkını regresyon testi ile doğrulayın. - Batch metadata için “yanına bir de Postgres açalım” alışkanlığını sorgulayın. Eğer iş yükünüz belge tabanlı platform üzerinde kalıyorsa, Boot
4.1+ MongoDB yolu artık ciddi aday. - JDK
27planınız varsa, küçük pod servislerinde GC’yi explicit seçmeden önce ve sonra benchmark alın. Özellikle CPU limiti düşük deployment’larda G1 ve Serial karşılaştırması yapın. - Spring AI kullanıyorsanız,
.content()yerine typed.entity(...)ve gerekli yerdevalidateSchema()yaklaşımı daha savunulabilir. Tool çağrılarını da siyah kutu yerine advisor zinciri olarak düşünmek artık daha doğru.
Fırsatlar ve Riskler
- Fırsat: Batch metadata’yı mevcut Mongo platformuna taşıyarak ayrı SQL operasyon yükünü azaltabilirsiniz.
- Risk: MongoDB batch yolunu transactions/replica-set gereksinimini dikkate almadan açmak, beklenmedik runtime davranışına yol açar.
- Fırsat: Son
3.5.xbakım sürümleri ile migration öncesi veri/messaging zeminini temizleyebilirsiniz. - Risk: “Zaten son OSS sürüm” deyip patch’i geciktirmek, sessiz correctness hatalarını üretime taşımaya devam etmek demektir.
- Fırsat: JDK
27öncesi explicit GC benchmark’ı ile pod boyutlandırma ve startup davranışı daha iyi savunulabilir hale gelir. - Risk: Varsayılan GC değişimini göz ardı etmek, sürüm yükseltmesinden sonra latency/footprint sapmalarını uygulama regresyonu sanmanıza neden olabilir.
- Fırsat: Spring AI
2.0ile agent loop’larını daha gözlemlenebilir ve kompoze hale getirmek mümkündür. - Risk: AI backlog’u yokken bu alanı ana gündem yapmak, bugün daha yüksek geri dönüşlü patch/migration işlerini gölgede bırakır.
İzlenmesi Gereken Konular
- Spring Batch MongoDB yolunda yeni native-image, transaction ve ölçeklenebilirlik örnekleri geliyor mu?
- JEP 523 JDK
27hattında son haline giderken constrained environment test sonuçları nasıl olgunlaşıyor? - Spring Data
3.5.13sonrası başka sibling modüllerde benzer “regression-only ama davranış etkili” küçük düzeltmeler geliyor mu? - Spring AI
2.0upgrade notları ve advisor zinciri etrafında üçüncü parti pattern’ler olgunlaşıyor mu? - Bugün Gunnar Morling ve Burak KUTBAY tarafında bu ekseni değiştirecek kadar taze yeni içerik görünmedi; yeni yazılar düşerse özellikle stream processing ve Spring Boot
4.xpratikleri açısından tekrar bakılmalı.
Kaynak Bazlı Bulgular
Bulgu 1
title: Spring Batch MongoDB metadata yolu, Boot4.1ve Batch6.0.4ile operasyonel olarak daha savunulabilir hale geldisource: MongoDB-backed Spring Batch jobs and more in Spring Boot 4.1 | Spring Batchv6.0.4| This Week in Spring - June 23rd, 2026author: Josh Long | Mahmoud Ben Hassinedate: 21-23 Haziran 2026category: batch, data-platform, operations, cloud-nativetags: spring-batch, mongodb, jobrepository, boot-4.1, n-plus-one, observabilitysummary: Boot4.1yeni MongoDB batch starter’ını veriyor; Batch6.0.4da Mongo repository sorgu kalıplarındaki performans ve N+1 sorunlarını düzeltiyor.why_it_matters: Bu artık yalnız “SQL’siz de çalışıyor” demek değil; Spring ekibi Mongo metadata hattındaki ilk üretim pürüzlerini aktif biçimde kapatıyor.java_spring_relevance: Spring Batch kullanan ekiplerde metadata veritabanı seçimi, platform standardı ve operasyon yükü doğrudan etkileniyor.actionability:planlı_aksiyonimpact_level:yüksekopportunities: Ayrı metadata RDBMS ihtiyacını azaltmak, batch ve platform katmanını belge tabanlı altyapıyla hizalamak.risks: MongoDB transactions için replica set gereksinimini veya repository query davranışını hafife almak.migration_notes: Pilot ortamda Mongo replica set, schema initialization, job restart semantiği ve metrics yüzeyi birlikte doğrulanmalı.
Bulgu 2
title: Spring Data3.5.13, miras alan çözümleme veMEMBER OFparse yolunda sessiz correctness hatalarını kapatıyorsource: Spring Data2025.0.13released | Spring Data Commons3.5.13| Spring Data JPA3.5.13author: Mark Paluch | Spring Data maintainersdate: 24 Haziran 2026category: data-access, correctness, orm, querytags: spring-data, typediscoverer, jpql, eql, member-of, hibernate-6.6.53summary:TypeDiscovererartık masked superclass field yerine subclass alanını koruyor; JPA tarafında da tek karakterli literal ileMEMBER OFparse hatası düzeltiliyor.why_it_matters: Bu tip hatalar çoğu zaman gürültülü crash değil sessiz veri erişim yanlışlığı üretir.java_spring_relevance: Repository mapping, entity hiyerarşisi ve özel query katmanları Spring veri erişim kodunun tam merkezinde.actionability:hemen_aksiyonimpact_level:yüksekopportunities: Migration öncesi query/mapping tabanını daha temiz hale getirmek.risks: Sorunu “küçük bug fix” diye görüp patch’i atlamak, veri erişim katmanında zor ayıklanan davranış farklarını sürdürmek.migration_notes: Entity mirası, hidden field yapıları veMEMBER OFiçeren özel sorgular için küçük ama hedefli regresyon testleri açılmalı.
Bulgu 3
title: Spring AMQP3.2.12, RabbitMQ3.13classic queue vex-deathyollarında gerçek patch-floor oluşturdusource: Spring AMQPv3.2.12| Spring Bootv3.5.16author: Spring AMQP maintainers | Andy Wilkinsondate: 24-25 Haziran 2026category: messaging, operations, regression-fixtags: spring-amqp, rabbitmq-3.13, x-death, classic-queue, queue-leader-locatorsummary:3.2.11regresyonu nedeniyle bozulan classic queue deklarasyonu ve bozukx-deathheader kaynaklıClassCastExceptionhattı düzeltiliyor.why_it_matters: Event-driven sistemlerde bu tip düzeltmeler, “nadir hata” olmaktan çok replay, dead-letter ve deploy davranışını etkileyen operasyonel taban değişiklikleridir.java_spring_relevance: Spring Boot + RabbitMQ kullanan servislerde producer/consumer altyapısı, retry ve DLQ zinciri doğrudan etkilenir.actionability:hemen_aksiyonimpact_level:yüksekopportunities: Messaging tabanını migration öncesi stabilize etmek.risks: RabbitMQ3.13ile classic queue kullanan ortamlarda sürüm gerisinde kalmak ve regresyonu görünmezce taşımak.migration_notes: Özellikle DLQ,x-death, queue redeclare ve rolling deploy senaryoları patch sonrası tekrar denenmeli.
Bulgu 4
title: JDK27ile varsayılan GC’nin G1’a kayması, küçük Spring pod’larında sessiz runtime farkı yaratabilirsource: JEP 523: Make G1 the Default Garbage Collector in All Environments | Performance Improvements in JDK 26author: Thomas Schatzl | Ana-Maria Mihalceanu | Per-Ake Minborgdate: Mayıs-Haziran 2026category: jvm, gc, performance, runtimetags: jdk27, jep-523, g1gc, serialgc, containers, startup, latencysummary: OpenJDK, GC seçimi belirtilmediğinde her ortamda G1’a geçmeyi hedefliyor; JDK26da G1 throughput ve senkronizasyon maliyetini zaten iyileştirmiş durumda.why_it_matters: Uygulama kodu değişmeden JVM default davranışı değişebilir ve bu özellikle küçük container’larda görünür olur.java_spring_relevance: Spring Boot servisleri sıklıkla explicit GC seçmeden çalıştırılıyor; bu nedenle upgrade etkisi doğrudan backend filolarını ilgilendiriyor.actionability:planlı_aksiyonimpact_level:orta-yüksekopportunities: G1’ın yeni tabanıyla daha sade runtime standardı ve daha iyi latency/throughput dengesi elde etmek.risks: Varsayılan GC değişimini ölçmeden rollout yapmak ve kaynak tüketim sapmalarını uygulama bug’ı sanmak.migration_notes: JDK27öncesi G1 ve Serial için küçük pod benchmark’ı açılmalı; GC seçimi rollout boyunca explicit tutulmalı.
Bulgu 5
title: Spring AI2.0, structured output retry ve tool loop’u framework içinde gözlemlenebilir hale getiriyorsource: Self-Correcting Structured Output in Spring AI 2.0 | Tool Calling in Spring AI 2.0: A Composable, Agentic Architecture | Java Weekly, Issue 652author: Christian Tzolov | Baeldung editorial teamdate: 15-27 Haziran 2026category: ai-platform, developer-productivity, observabilitytags: spring-ai, validateSchema, tool-calling, advisor-chain, structured-output, mcpsummary:validateSchema()ile typed structured output için self-correcting retry ekleniyor; tool-calling de model implementasyonlarının içinden çıkarılıp advisor zincirine taşınıyor.why_it_matters: AI iş akışlarında hata yönetimi ve ara adım gözlemlenebilirliği, üretim güvenilirliği için model seçiminden daha kritik hale geliyor.java_spring_relevance: Spring AI ile iç araç, asistan veya agentic workflow yazan ekipler için doğrudan tasarım etkisi var.actionability:izlemelikimpact_level:düşük-ortaopportunities: Daha denetlenebilir, retry edilebilir ve compose edilebilir AI akışları kurmak.risks: AI gündemi olmayan ekiplerin bunu erken optimize edip daha yüksek geri dönüşlü platform işlerini ertelemesi.migration_notes: Aktif Spring AI kullanımı varsa1.xprivate loop varsayımları gözden geçirilmeli; typed output ve retry maliyeti ölçülmeli.
Sonuç
Bugünün en değerli sinyali yeni bir büyük framework duyurusu değil; son bakım hattı sürümlerinin altında biriken sessiz davranış düzeltmeleri. Spring Data ve AMQP tarafındaki küçük görünen değişiklikler, migration bekleyen ekipler için bile hemen alınması gereken patch-floor oluşturuyor. Buna paralel olarak Spring Batch’in MongoDB metadata yolu artık üretim adayı olgunluğa yaklaşıyor ve OpenJDK tarafında GC default’larının değişmesi, JDK yükseltmelerini sadece dil/JEP takibi olmaktan çıkarıp gerçek runtime kararına dönüştürüyor.