Her modülün sonunda MiniBank biraz daha gerçek bir uygulamaya dönüşür.
Katılımcı, MiniBank repo'sunda başlangıç branch'ini çekip sınıfla birlikte üretim yapar; geride kalırsa tamamlanmış branch'e geçip aynı noktadan devam eder.
Başlangıç
Spring Boot & MiniBank'a Giriş
00
Eğitime giriş: ne yapacağız, nasıl çalışacağız, ortam kurulumu ve boş MiniBank iskeletini ilk kez ayağa kaldırma. Bu modülde kod yazılmaz — kurulur ve tanınır.
- 3 gün / 11 modül / tek ürün yolculuğu.
- Portal → dashboard → branch → yaz → test akışı.
- Base project turu ve ilk çalıştırma.
Modül 01
Spring Boot Internal Mechanics
01
Spring Boot'un auto configuration, component scanning, ApplicationContext, bean lifecycle ve constructor injection davranışlarını MiniBank üzerinden anlatır.
Üretim çıktısı
lab-01-complete
- Account ve Customer servis katmanı oluşur.
- Bean discovery ve constructor injection görünür hale gelir.
@PostConstruct ile lifecycle gözlemlenir.
Modül 02
IoC & Bean Model
02
IoC, BeanDefinition, scope mantığı, lazy initialization ve prototype bean'in singleton içinde doğru kullanımı anlatılır.
Üretim çıktısı
lab-02-complete
- Prototype scoped
ReferenceNumberGenerator eklenir.
- Operasyon servisleri
ObjectProvider ile taze instance ister.
- MiniBank operasyon referansı üretebilir hale gelir.
Cross-cutting concern, aspect, advice, pointcut, proxy modeli, @Around, @Transactional ilişkisi ve self-invocation riski MiniBank audit logging case'i ile anlatılır.
Üretim çıktısı
lab-03-complete
@Auditable annotation ve AuditAspect eklenir.
- Account ve Customer operasyonları AOP audit log üretir.
- Self-invocation ve proxy davranışı pratik bağlama oturur.
Modül 04
Spring MVC Internals
04
DispatcherServlet, HandlerMapping, HandlerAdapter, HttpMessageConverter ve custom argument resolver akışı MiniBank CurrentUser case'i ile anlatılır.
Üretim çıktısı
lab-04-complete
CurrentUserArgumentResolver eklenir.
WebMvcConfigurer ile MVC akışına register edilir.
- Account ve Customer endpoint'leri request header bilgisini parametre olarak alır.
Modül 05
REST API Development Properly
05
REST mental model, @RestController best practices, DTO pattern, validation, proper HTTP status codes ve mapping kararları MiniBank API case'i ile anlatılır.
Üretim çıktısı
lab-05-complete
- Account API request/response DTO ve validation ile yazılır.
- Customer API aynı pattern ile tamamlanır.
- Endpoint'ler doğru HTTP status code ile cevap verir.
Modül 06
Exception Handling Fundamentals
06
Spring MVC exception resolver flow, @RestControllerAdvice, business/technical exception ayrımı, validation error response ve standart error contract tasarımı MiniBank üzerinde anlatılır.
Üretim çıktısı
lab-06-complete
GlobalExceptionHandler ile standart hata response'u oluşturulur.
- Account ve Customer business exception'ları API contract'a çevrilir.
- Validation hataları field bazlı okunabilir response döner.
Modül 07
Configuration & Profiles
07
Configuration ihtiyacı, application.yml best practices, profile-based config, @ConfigurationProperties, environment variable override ve secret yönetimi MiniBank üzerinde anlatılır.
Üretim çıktısı
lab-07-complete
- Dev/prod config dosyaları ayrıştırılır.
TransferProperties ve FraudProperties typed config olarak bağlanır.
- Customer limit davranışı config üzerinden yönetilir.
Modül 08
Spring Security Basics
08
Spring Security'nin ne işe yaradığı, authentication/authorization ayrımı, SecurityFilterChain, stateless JWT flow, bearer token, BCrypt ve method-level security MiniBank üzerinde anlatılır.
Üretim çıktısı
lab-08-complete
/api/auth/login bearer token üretir.
- Account ve Customer endpoint'leri JWT ile korunur.
- ADMIN-only customer endpoint'i role-based access ve
@PreAuthorize ile doğrulanır.
Modül 09
Data Access & Transaction Management
09
JPA, entity/repository modeli, persistence context, lazy/eager loading, N+1 optimizasyonu ve transaction propagation kararları MiniBank üzerinde anlatılır.
Üretim çıktısı
lab-09-complete
- Account history ilişkileri JPA entity ve repository ile modellenir.
- N+1 davranışı fetch join /
@EntityGraph yaklaşımıyla optimize edilir.
- Transfer audit kaydı
REQUIRES_NEW propagation ile örneklenir.
Modül 10
External API Call Basics
10
External API boundary, WebClient, client configuration, timeout, retry, idempotency, error mapping ve transaction sınırı MiniBank Fraud Check case'i ile anlatılır.
Üretim çıktısı
lab-10-complete
FraudCheckClient external client pattern'i ile yazılır.
- Timeout ve retry configuration üzerinden yönetilir.
- Transfer akışı fraud check'i transaction başlamadan çağırır.
Modül 11
Basic Observability Awareness
11
Observability vs monitoring ayrımı, Actuator endpoint mantığı, health/info/metrics/loggers, custom health, liveness/readiness, runtime log level ve correlation ID MiniBank final case'i ile anlatılır.
Final çıktı
lab-11-complete
- Actuator endpoint'leri production farkındalığıyla açılır.
- Custom health indicator ve liveness/readiness davranışı gözlemlenir.
X-Correlation-Id request, response ve log arasında ortak iz olur.