Spring Boot 4.2.0-RC1 ve Spring Cloud 2026.0.0-RC1 ‘Paddington’: Gateway MVC WebSockets, Config OAuth2 ve Ubuntu 26.04 Buildpacks
Kasım 2026 GA sürümü öncesinde son virajı dönen Spring Boot 4.2.0-RC1 ve Spring Cloud 2026.0.0-RC1 (Paddington); Ubuntu 26.04 Resolute tabanlı yeni Paketo Buildpacks imajları, hızlandırılmış JAR sınıf yükleme motoru, Spring Cloud Gateway MVC üzerinde yerleşik WebSocket desteği, Config Server için yerel OAuth 2.0 yetkilendirmesi ve Kubernetes HA Watcher mimarisini kullanıma sunuyor.

Kurumsal Java ekosisteminde Kasım 2026 genel kullanıma sunulma (GA) takvimi yaklaşırken, Spring Boot 4.2.0-RC1 (Release Candidate 1) ve bu temel üzerine inşa edilen Spring Cloud 2026.0.0-RC1 (kod adı: 'Paddington') sürüm treni resmi olarak yayınlandı. Toplamda 113’ten fazla çekirdek iyileştirme, bağımlılık yükseltmesi ve performans optimizasyonu içeren bu sürüm adayları; özellik setinin dondurulduğu (feature-freeze) ve üretim öncesi entegrasyon testlerinin başladığı aşamayı temsil ediyor.
Spring Framework 7.2, Spring Security 7.2.0-RC1 ve Spring Modulith 2.2-RC1 tabanı üzerinde yükselen yeni sürümler; özellikle Java Sanal İş Parçacıkları (Virtual Threads) ile çalışan Servlet tabanlı API ağ geçitlerindeki eksiklikleri kapatırken, konteyner imajı üretiminden dağıtık yapılandırma güvenliğine kadar kritik mimari yenilikler getiriyor.
1. Spring Boot 4.2.0-RC1: Konteyner Standartları, Başlatma Performansı ve Fail-Fast Yapılandırma
Spring Boot 4.2.0-RC1 sürümü, bulut yerlisi (cloud-native) dağıtım hatlarını modernize eden ve uygulama başlatma süresini (startup latency) aşağı çeken üç temel mühendislik değişikliğiyle öne çıkıyor:
a) Ubuntu 26.04 'Resolute' Tabanlı Paketo Buildpacks ve Stack ID Göçü
spring-boot:build-image (Maven) ve bootBuildImage (Gradle) görevlerinde kullanılan varsayılan Cloud Native Buildpacks (CNB) oluşturucusu paketobuildpacks/ubuntu-resolute-builder (Ubuntu 26.04 LTS tabanlı) sürümüne yükseltildi. Ayrıca CNB spesifikasyonunda kullanımdan kaldırılan eski stack kimlikleri yerine, konteyner temel imajlarının işletim sistemi dağılımını izlemek için standart io.buildpacks.base.distro.name ve io.buildpacks.base.distro.version etiketlerine geçiş tamamlandı.
b) İç İçe Çalıştırılabilir JAR (Nested Executable JAR) Sınıf ve Kaynak Arama Hızlandırması
Büyük ölçekli kurumsal uygulamalarda yüzlerce bağımlılık JAR dosyasını barındıran fat-JAR paketlerinde, başlatma esnasında gerçekleşen ClassLoader ve kaynak (getResource) taramaları optimize edildi. Yeni dizinleme ve önbellekleme iyileştirmeleri sayesinde kapsayıcıların soğuk başlatma (cold-start) süresinde doğrudan ölçülebilir azalma sağlandı.
c) spring-boot-properties-migrator İçin Katı (Fail-Fast) Denetim Modu
Sürüm yükseltmelerinde eskiyen (deprecated) veya adı değişen application.yml anahtarlarını çalışma zamanında geçici olarak eşleyen spring-boot-properties-migrator modülü artık uyarı veya hata durumunda başlatmayı bilerek durduracak (fail-fast) şekilde yapılandırılabiliyor. Bu özellik, CI/CD boru hatlarında eski yapılandırma anahtarlarının üretime sızmasını engelliyor.
(Buna ek olarak, 4.2.0-M2/M3 aşamalarında eklenen LDAP/LDAPS bağlantıları için yerleşik SSL Bundles desteği ve OpenTelemetry Semantik Sözleşmeleri uyumu da RC1 ile kararlı hale getirildi.)
2. Spring Cloud 2026.0.0-RC1 ('Paddington'): Dağıtık Mikroservis Mimarisinde Neler Değişti?
Spring Boot 4.2.0-RC1 tabanı üzerine kurulan ve alt modülleri 5.1.0-RC1 sürüm numarasına yükseltilen Spring Cloud 2026.0.0-RC1 (Paddington), özellikle reaktif olmayan (Servlet + Virtual Threads) mikroservis topolojileri ve sıfır güven (Zero-Trust) yapılandırma sunucuları için uzun süredir beklenen yetenekleri devreye alıyor:
flowchart TD
Client["İstemci (HTTP/REST & WebSocket)"] -->|"Güvenli X-Forwarded Denetimi (#4271)"| GW["Spring Cloud Gateway Server WebMVC 5.1.0-RC1\n(Servlet + Java Virtual Threads + Yerleşik WebSocket #3442)"]
GW -->|"WebSocket & HTTP Yönlendirme"| MS1["Mikroservis A (Spring Boot 4.2.0-RC1)"]
GW -->|"REST & gRPC Yönlendirme"| MS2["Mikroservis B (Spring Boot 4.2.0-RC1)"]
MS1 & MS2 -->|"Yerleşik OAuth 2.0 Bearer Token (#2348)"| Cfg["Spring Cloud Config Server"]
K8s["Spring Cloud Kubernetes HA Watcher (#1828)\nFabric8 8.0.0 & K8s Client 27.0.0"] -->|"Tekilleştirilmiş HTTP Path Bildirimi"| Cfg
Cfg -->|"Spring Cloud Stream Bünyesine Katılan\nSpring Cloud Bus Olayı"| MS1 & MS2
1) Spring Cloud Gateway Server WebMVC’de Yerleşik WebSocket Desteği (#3442) ve Vekil Güvenliği (#4271)
Java 21+ Sanal İş Parçacıkları (Virtual Threads) sayesinde birçok kurumsal ekip, Netty/WebFlux tabanlı reaktif Gateway yerine hata ayıklaması ve izlenebilirliği daha kolay olan Spring Cloud Gateway Server WebMVC (Servlet tabanlı) modülünü tercih etmektedir. Ancak önceki sürümlerde MVC Gateway’in yerleşik WebSocket yönlendirmesini desteklememesi önemli bir kısıttı.
- Paddington (
5.1.0-RC1) ile birliktespring-cloud-starter-gateway-server-webmvcartık tam çift yönlü WebSocket proxying ve yönlendirme (#3442) kabiliyetine kavuştu. - Ayrıca güvenilmeyen vekil sunuculardan (untrusted proxies) gelen sahte
ForwardedveX-Forwarded-*başlıklarının işlenmesindeki güvenlik davranışı sıkılaştırılarak (#4271) başlık sahteciliği (header spoofing) riskleri kapatıldı.
2) Spring Cloud Config İstemcisinde Yerel OAuth 2.0 Yetkilendirmesi (#2348)
Daha önce merkezi bir Spring Cloud Config Server katmanını OAuth 2.0 / OIDC ile korumak isteyen ekiplerin, her mikroservisin önyükleme (bootstrap) aşamasına özel RequestInterceptor ve token yenileme kodu yazması gerekiyordu. Spring Cloud Config 5.1.0-RC1, istemci tarafında yerleşik OAuth 2.0 yetkilendirme desteğini (#2348) ve değişen yapılandırma yollarını seçici olarak bildiren yeni HTTP Property Path Notifier mekanizmasını doğrudan yapılandırma özellikleri üzerinden sunuyor.
3) Spring Cloud Bus’ın Spring Cloud Stream Çatısı Altına Birleştirilmesi
Mimari sadeleşme kapsamında Spring Cloud Bus artık ayrı bir bağımsız depo (standalone project) olarak sürdürülmeyecek; resmi olarak Spring Cloud Stream projesinin içerisine dahil edildi. Mevcut projelerin kırılmaması için Maven/Gradle grup ve artefakt koordinatları (spring-cloud-starter-bus-amqp, spring-cloud-starter-bus-kafka) birebir aynı tutuldu.
4) Spring Cloud Kubernetes: Yüksek Erişilebilirlikli (HA) Configuration Watcher (#1828)
Kubernetes ConfigMap ve Secret değişikliklerini izleyerek mikroservisleri tetikleyen Configuration Watcher bileşeni artık Yüksek Erişilebilirlik (High Availability — #1828) modunda birden fazla kopya (replica) ile çalışabiliyor. Altyapı kütüphaneleri ise Fabric8 Kubernetes Client 8.0.0 ve resmi Kubernetes Java Client 27.0.0 sürümlerine yükseltildi.
3. Alt Modül Sürüm Matrisi: Spring Cloud 2026.0.0-RC1 ('Paddington')
| Bileşen / Modül | Sürüm Numarası | Öne Çıkan Mimari Yenilik |
|---|---|---|
| Spring Boot Temeli | 4.2.0-RC1 |
Ubuntu 26.04 Resolute Buildpacks, hızlı JAR sınıf arama, LDAPS SSL Bundles |
| Spring Cloud Gateway | 5.1.0-RC1 |
Gateway Server WebMVC üzerinde tam WebSocket desteği (#3442) ve Forwarded güvenliği (#4271) |
| Spring Cloud Config | 5.1.0-RC1 |
Config Client için yerleşik OAuth 2.0 yetkilendirmesi (#2348) ve HTTP Path Notifier |
| Spring Cloud Kubernetes | 5.1.0-RC1 |
Configuration Watcher HA desteği (#1828), Fabric8 8.0.0 ve K8s Client 27.0.0 |
| Spring Cloud Stream & Bus | 5.1.0-RC1 |
Spring Cloud Bus'ın koordinatları korunarak Spring Cloud Stream içine entegrasyonu |
| Spring Cloud Commons / OpenFeign / Vault | 5.1.0-RC1 |
Spring Framework 7.2 ve Spring Boot 4.2.0-RC1 API uyumluluğu |
4. Kod ve Yapılandırma Örneği: Gateway MVC WebSocket Yönlendirmesi ve Config OAuth 2.0
Aşağıdaki Java 25+ / Spring Boot 4.2.0-RC1 ve Spring Cloud 2026.0.0-RC1 referans uygulaması; sanal iş parçacıkları üzerinde çalışan Gateway Server WebMVC ile gerçek zamanlı telemetri WebSocket rotası tanımlamayı ve Config Client katmanında yerleşik OAuth 2.0 kimlik doğrulamasını etkinleştirmeyi göstermektedir:
package com.enterprise.platform.gateway;
import java.net.URI;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.function.RouterFunction;
import org.springframework.web.servlet.function.ServerResponse;
import static org.springframework.cloud.gateway.server.mvc.filter.BeforeFilterFunctions.uri;
import static org.springframework.cloud.gateway.server.mvc.filter.FilterFunctions.rewritePath;
import static org.springframework.cloud.gateway.server.mvc.handler.GatewayRouterFunctions.route;
import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.ws;
import static org.springframework.cloud.gateway.server.mvc.predicate.GatewayRequestPredicates.path;
@SpringBootApplication
public class PaddingtonGatewayMvcApplication {
public static void main(String[] args) {
SpringApplication.run(PaddingtonGatewayMvcApplication.class, args);
}
/**
* Spring Cloud Gateway Server WebMVC 5.1.0-RC1 (#3442):
* Servlet + Virtual Threads mimarisinde yerleşik WebSocket yönlendirmesi.
*/
@Bean
public RouterFunction<ServerResponse> realtimeTelemetryWebSocketRoute() {
return route("telemetry-websocket-stream")
.route(path("/ws/telemetry/**"), ws())
.before(uri(URI.create("ws://telemetry-service.internal:8085")))
.filter(rewritePath("/ws/telemetry/(?<segment>.*)", "/streams/${segment}"))
.build();
}
}
İlgili mikroservisin application.yml dosyasında Spring Cloud Config OAuth 2.0 (#2348) ve Spring Boot 4.2 LDAPS SSL Bundle yapılandırması ise şu şekilde tanımlanmaktadır:
spring:
application:
name: telemetry-gateway-mvc
threads:
virtual:
enabled: true
config:
import: "optional:configserver:https://config.corp.internal:8888"
cloud:
config:
client:
oauth2:
client-id: "gateway-mvc-config-client"
client-secret: "${CONFIG_OAUTH2_CLIENT_SECRET}"
token-uri: "https://auth.corp.internal/oauth2/token"
scopes: "config.read"
ssl:
bundle:
pem:
corporate-ldaps:
truststore:
certificate: "classpath:certs/corp-root-ca.pem"
ldap:
urls: "ldaps://directory.corp.internal:636"
ssl:
bundle: "corporate-ldaps"
5. Kurumsal Göç Değerlendirmesi
Spring Boot 4.2.0-RC1 ve Spring Cloud 2026.0.0-RC1 (Paddington), https://repo.spring.io/milestone deposu üzerinden erişime açılmış durumda. Özellikle reaktif yığından (WebFlux) Java Virtual Threads + Spring MVC mimarisine geçmek isteyen ancak WebSocket gereksinimi nedeniyle Gateway katmanında WebFlux’a bağımlı kalan ekipler için Gateway Server WebMVC WebSocket desteği (#3442), tek tip (unified) senkron/sanal iş parçacığı mimarisine geçişin önündeki son teknik engeli kaldırıyor.
Yazılım mimarisi, mikroservis ekosistemleri ve üretken yapay zeka uygulamaları üzerine çalışıyorum. TastutanLabs çatısı altında geliştirici araçları ve SaaS ürünleri inşa ediyorum.
Bu analizin 6 kartlık görsel özetini Instagram'da inceleyin ve kaydedin
Her gün yazılım mimarisi, Java/JVM ve yapay zeka gelişmelerini kendi başına okunabilen 6 slaytlık Mini-Blog serileri halinde paylaşıyoruz.
Yorumlar (0)
Düşüncelerinizi Paylaşın
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Bu Kategorideki Diğer İncelemeler
OpenJDK ‘Project Detroit’ (FFM ile V8 ve CPython), Spring Boot Yerel ‘Cloud Foundry / kind’ Orkestrasyonu ve Quarkus 4.0 Mimarisi
OpenJDK'nın Foreign Function & Memory (FFM) API üzerinden Google V8 ve CPython çalışma zamanlarını doğrudan JVM sürecine gömen Project Detroit girişimi, Spring Boot uygulamalarında Docker/kind tabanlı yerel Cloud Foundry dağıtımı ve Quarkus 4.0 (Vert.x 5, HTTP/3, Hibernate 8) mimarisi inceleniyor.
JDK 28’de ‘JEP 401 Value Classes’ ve Değişmez Veri Mimarisi, Spring AI 2.1 ‘MessagePart’ Akıl Yürütme Korunumu ve Özel Vektör ‘Upsert’ API’si
OpenJDK 28 erken erişim sürümlerinde 30 çekirdek sınıfı kimliksiz değer nesnesine dönüştüren JEP 401 (Value Classes), çok turlu akıl yürütme imzalarını kayıpsız taşıyan Spring AI 2.1 MessagePart mimarisi ve önceden hesaplanmış float[] vektörleri destekleyen VectorStore.upsert() yetenekleri inceleniyor.