Spring Mülakat Soruları: Kapsamlı Rehber ve Hazırlık Stratejisi
Java ekosisteminde kariyer yapmak isteyen yazılım geliştiriciler için Spring Framework bilgisi vazgeçilmez bir yetkinlik haline geldi. Günümüzde kurumsal firmaların büyük çoğunluğu backend altyapılarını Spring tabanlı teknolojiler üzerine inşa ediyor. Bu nedenle, Java backend mülakat hazırlığı sürecinde Spring konularına hakim olmak, adayların teknik değerlendirmelerde başarılı olmasının anahtarı durumunda. Bu makalede, temel kavramlardan ileri seviye mimari kararlara kadar geniş bir yelpazede spring mülakat soruları ele alınacak ve kapsamlı bir hazırlık stratejisi sunulacak.
Spring Mülakatlarına Giriş ve Hazırlık Stratejisi
Teknik mülakat süreçleri, şirketlerin adayların problem çözme yeteneklerini, kod kalitesi anlayışlarını ve mimari düşünme becerilerini değerlendirdiği kritik aşamalardır. Özellikle enterprise düzeydeki projelerde Spring Framework kullanımının yaygınlığı, bu konularda derinlemesine bilgi sahibi olmayı zorunlu kılıyor. Adayların sadece teorik tanımları bilmekle kalmayıp, gerçek dünya senaryolarında karşılaşılan problemlere pratik çözümler üretebilmeleri beklenir.
Mülakat hazırlığında seviye belirleme kritik öneme sahiptir. Junior pozisyonlarda temel dependency injection kavramları ve basit REST servisi oluşturma becerileri öne çıkarken, senior rollerde distributed transaction yönetimi, microservices patterns ve performans optimizasyonu gibi ileri konular derinlemesine sorgulanır. Başarılı bir strateji, teorik bilgi ile pratik uygulama arasında denge kurmayı gerektirir. Adayların GitHub portfolyolarında Spring Boot projeleri, kod okuma alıştırmaları ve sistem tasarımı deneyimlerini sergilemeleri büyük avantaj sağlar.
Sık Sorulan Temel Soru Örneği
Soru: Spring Framework'ün Java EE'ye göre avantajları nelerdir ve neden tercih edilir?
Mini Vaka Senaryosu: Hazırlık Stratejisi
Ahmet, üç yıllık Java deneyimine sahip bir geliştiricidir ve senior backend pozisyonuna başvurmaktadır. Mülakata hazırlanırken sadece annotasyonları ezberlemek yerine, kendi mikroservis mimarili bir e-ticaret projesi geliştirmeye karar verir. Projede Spring Boot, Spring Cloud Gateway, Spring Data JPA ve Spring Security kullanarak gerçek dünya senaryolarını uygular. Mülakatta karşılaştığı "Distributed transaction nasıl yönetirsiniz?" sorusuna, geliştirdiği Saga pattern implementasyonunu örnek göstererek cevap verir ve teknik ekibin dikkatini çeker.
Değerlendirme Rubrikleri
Mülakat komisyonları adayları şu kriterlere göre puanlar: Temel konsept bilgisi (25%), Pratik uygulama deneyimi (30%), Problem çözme yaklaşımı (25%), Kod kalitesi ve best practices (20%). Her seviye için beklentiler farklılık gösterir; junior adaylarda öğrenme isteği ve temel kavram anlayışı öne çıkarken, senior adaylardan mimari kararların arkasındaki trade-off'ları açıklamaları beklenir.
Spring Framework Temel Konseptleri ve IOC/DI Soruları
Inversion of Control (IOC) prensibi, Spring ekosisteminin kalbinde yer alan temel tasarım desenidir. Geleneksel programlamada nesneler kendi bağımlılıklarını oluştururken, IOC'de bu kontrol container'a devredilir. Bu yaklaşım, loose coupling (gevşek bağlılık) sağlayarak kodun test edilebilirliğini ve bakımını kolaylaştırır. Dependency Injection (DI) ise IOC'nin bir implementasyonu olarak, nesnelerin bağımlılıklarının dışarıdan enjekte edilmesini sağlar.
Spring IOC ve DI soruları mülakatların vazgeçilmezidir. Constructor injection, setter injection ve field injection olmak üzere üç temel DI türü bulunur. Modern Spring uygulamalarında constructor injection tercih edilir çünkü immutable nesneler oluşturmayı, zorunlu bağımlılıkları garanti altına almayı ve circular dependency'leri compile-time'da tespit etmeyi sağlar. Bean lifecycle yönetimi ve scope'lar (singleton, prototype, request, session) da sıkça sorulan konular arasındadır. Singleton scope varsayılan olarak kullanılır ve Spring container'ı başına bir bean instance'ı oluştururken, prototype her istekte yeni bir instance oluşturur.
Sık Sorulan IOC/DI Soruları
Soru 1: @Component, @Service, @Repository ve @Controller annotasyonları arasındaki farklar nelerdir ve hangi katmanlarda kullanılırlar?
Soru 2: ApplicationContext ile BeanFactory arasındaki architectural farklar nelerdir ve hangi senaryoda hangisi tercih edilir?
Mini Vaka Senaryosu: Dependency Injection Seçimi
Bir finans teknolojileri şirketinde çalışan Zeynep, ödeme işlemlerini yöneten PaymentService sınıfını tasarlamaktadır. Sınıfın NotificationService, FraudDetectionService ve AuditLogService bağımlılıkları bulunmaktadır. Zeynep, field injection kullanarak hızlıca geliştirme yapmayı düşünse de, ekibindeki tech lead constructor injection kullanmasını önerir. Tech lead, unit testlerde mock bağımlılıkları inject etmek için constructor'ın gerekli olduğunu ve null pointer riskini minimize ettiğini açıklar. Zeynep bu yaklaşımı benimseyerek daha test edilebilir ve robust bir kod yapısı oluşturur.
Değerlendirme Rubrikleri
IOC/DI sorularında adaylar şu başlıklara göre değerlendirilir: Bean lifecycle farkındalığı (20%), DI türleri arasındaki trade-off'ların bilinmesi (25%), Scope kullanım senaryolarının doğru anlaşılması (20%), Circular dependency çözüm stratejileri (15%), Proxy mekanizmaları hakkında temel bilgi (20%).
Spring Boot Mülakat Soruları ve Microservices Yaklaşımı
Spring Framework interview questions içinde son yıllarda en popüler konu başlığı Spring Boot olmuştur. Convention over configuration (konfigürasyon üzerine kurallar) felsefesi, geliştiricilerin tekrarlayan yapılandırma kodları yazmasını engeller. @SpringBootApplication annotasyonu, @Configuration, @EnableAutoConfiguration ve @ComponentScan'ın birleşiminden oluşur ve uygulamanın otomatik olarak yapılandırılmasını sağlar. Auto-configuration mekanizması, classpath'teki dependency'lere bakarak gerekli bean'leri otomatik olarak oluşturur.
Spring Boot mülakat soruları genellikle embedded servlet container'ların (Tomcat, Jetty, Undertow) avantajları, Spring Boot Actuator'ın sağlık kontrolü ve metrics toplama özellikleri, ve microservices mimarisinde Spring Cloud kullanımı üzerine odaklanır. Actuator, /health, /metrics, /info gibi endpoint'ler sunarak uygulamanın production ortamındaki davranışını izlemeyi kolaylaştırır. Microservices context'inde ise service discovery (Eureka), API Gateway (Spring Cloud Gateway), ve circuit breaker (Resilience4j) pattern'leri sıkça sorulan konulardır.
Sık Sorulan Spring Boot Soruları
Soru 3: Spring Boot'ta externalized configuration nasıl yönetilir ve application.properties ile application.yml arasındaki farklar nelerdir?
Soru 4: Spring Boot Actuator'ın güvenlik riskleri nelerdir ve production ortamında nasıl güvenli hale getirilir?
Mini Vaka Senaryosu: Microservices Migration
Mehmet, monolithic bir e-ticaret uygulamasını microservices mimarisine geçirmekle görevlendirilmiştir. Her servis için ayrı Spring Boot uygulamaları oluştururken, config server kullanarak merkezi yapılandırma yönetimi sağlar. Servisler arası iletişim için Spring Cloud OpenFeign kullanırken, fallback mekanizmaları için Resilience4j implemente eder. Mülakatta "Service A çağrısı başarısız olduğunda ne olur?" sorusuna, circuit breaker pattern'i ve retry mekanizmalarını kullanarak graceful degradation sağladığını örnek kodlarla açıklar.
Değerlendirme Rubrikleri
Spring Boot değerlendirmesinde: Auto-configuration mantığının anlaşılması (25%), Actuator ve monitoring bilgisi (20%), Microservices patterns (circuit breaker, gateway) deneyimi (30%), Configuration management best practices (15%), Startup optimizasyonu ve memory ayarları bilgisi (10%).
Spring AOP (Aspect Oriented Programming) Soruları
Spring AOP mülakat soruları, cross-cutting concerns (kesişen ilgiler) kavramı etrafında şekillenir. Logging, transaction management, security ve caching gibi işlevler, business logic'in her yerinde tekrarlanan kod blokları oluşturur. AOP bu kod tekrarını önlemek için aspect-oriented programming paradigmını kullanır. Aspect, JoinPoint, Pointcut ve Advice kavramları AOP'nin temel yapı taşlarıdır. Aspect, modülerleştirilmiş cross-cutting concern'i temsil ederken, Pointcut hangi join point'lerin advice tarafından intercept edileceğini belirler.
Advice türleri (Before, After, AfterReturning, AfterThrowing ve Around) farklı senaryolarda kullanılır. Around advice en güçlüsüdür çünkü metodun çalışmasını tamamen kontrol edebilir, parametreleri değiştirebilir veya metodu hiç çalıştırmadan return edebilir. AOP proxy mekanizmaları konusunda JDK Dynamic Proxy (interface-based) ve CGLIB (class-based) arasındaki farkları bilmek önemlidir. Spring varsayılan olarak interface varsa JDK proxy kullanır, yoksa CGLIB kullanır.
Sık Sorulan AOP Soruları
Soru 5: AOP kullanarak bir methodun çalışma süresini nasıl loglarsınız ve Around advice kullanırken dikkat edilmesi gerekenler nelerdir?
Soru 6: Self-invocation problemi nedir ve AOP proxy'ler içinde neden aspect'ler çalışmaz? Çözümü nedir?
Mini Vaka Senaryosu: Transaction Yönetimi
Selin, bankacılık uygulamasında para transferi işlemini implemente etmektedir. İşlem sırasında hem kaynak hesaptan para düşülüp hem de hedef hesaba para eklenmelidir. Bu iki işlem atomic olmalıdır. Selin, @Transactional annotasyonunu kullanarak transaction yönetimini AOP ile gerçekleştirir. Ancak içsel method çağrılarında (self-invocation) transaction'ın çalışmadığını fark eder. Bu sorunu çözmek için AspectJ LTW (Load Time Weaving) kullanmayı veya method'u farklı bir bean'e taşımayı değerlendirir.
Değerlendirme Rubrikleri
AOP değerlendirmesinde: Cross-cutting concerns tanımı (15%), Advice türleri arasındaki farklar (25%), Pointcut expression yazma yeteneği (20%), Proxy mekanizmaları bilgisi (20%), Gerçek projelerde kullanım deneyimi (logging, transaction) (20%).
Spring Data JPA ve Hibernate Entegrasyonu
Spring Data JPA mülakat soruları, Java persistence layer'ının en kritik konularını kapsar. JPA (Java Persistence API) bir specification iken, Hibernate bu specification'ın en popüler implementasyonudur. EntityManager, persistence context'i yönetir ve entity'lerin lifecycle'ını kontrol eder. @Entity, @Table, @Id, @GeneratedValue gibi temel annotasyonların yanı sıra, @OneToMany, @ManyToOne ilişki yönetimi annotasyonları sıkça sorulur.
Lazy loading ve eager loading stratejileri, performans optimizasyonu açısından kritik öneme sahiptir. Lazy loading, ilişkili verileri ilk sorguda çekmez ancak N+1 problemine yol açabilir. Bu sorun FetchType ayarları, Entity Graph veya JOIN FETCH kullanılarak çözülebilir. Spring Data Repository interfaces, method naming conventions (findBy, deleteBy vb.) ve @Query annotasyonu ile custom query yazımı da mülakatların vazgeçilmez konularıdır. Transaction yönetimi ve @Transactional annotasyonunun propagation davranışları (REQUIRED, REQUIRES_NEW, NESTED) derinlemesine incelenir.
Sık Sorulan JPA/Hibernate Soruları
Soru 7: N+1 problemi nedir ve Spring Data JPA'da bu sorunu nasıl çözersünüz?
Soru 8: @Transactional annotasyonunda REQUIRED ve REQUIRES_NEW propagation seviyeleri arasındaki fark nedir ve hangi senaryolarda kullanılırlar?
Mini Vaka Senaryosu: Performans Optimizasyonu
Can, bir raporlama ekranında binlerce kaydı listeleme performans sorunu yaşamaktadır. Sayfalama (pagination) kullanmasına rağmen ilişkili entity'ler (OneToMany) lazy loading nedeniyle N+1 sorgusu oluşturmaktadır. Can, EntityGraph kullanarak fetch planını optimize eder ve tek sorguda tüm gerekli verileri çeker. Ayrıca, read-only transaction'lar için @Transactional(readOnly = true) kullanarak Hibernate'in dirty checking mekanizmasını devre dışı bırakır ve performansı artırır.
Değerlendirme Rubrikleri
JPA değerlendirmesinde: Entity lifecycle bilgisi (20%), Fetch stratejileri ve performans etkisi (25%), Transaction isolation seviyeleri (20%), Query optimization teknikleri (20%), Spring Data Repository kullanımı (15%).
Spring Security ve Yetkilendirme Mekanizmaları
Spring Security soruları, enterprise uygulamaların vazgeçilmez güvenlik katmanını oluşturur. Authentication (kimlik doğrulama) ve Authorization (yetkilendirme) kavramlarının net bir şekilde ayrılması gerekir. Authentication, kullanıcının kimliğini doğrularken (username/password, JWT, OAuth2), authorization authenticated kullanıcının hangi kaynaklara erişebileceğini belirler. SecurityFilterChain mimarisi, filter'ların sıralı olarak çalışmasını sağlar ve her filter request'i işleyip sonraki filter'a iletebilir veya reddedebilir.
JWT (JSON Web Token) tabanlı stateless authentication, modern microservices mimarilerinde yaygın olarak kullanılır. OAuth2 ve OpenID Connect entegrasyonu, üçüncü parti kimlik sağlayıcıları (Google, Facebook) ile entegrasyonu sağlar. Method-level security @PreAuthorize ve @PostAuthorize annotasyonları ile service katmanında fine-grained yetkilendirme yapılmasına olanak tanır. CSRF (Cross-Site Request Forgery) koruması ve CORS (Cross-Origin Resource Sharing) yapılandırması da güvenlik mülakatlarının önemli konularıdır.
Sık Sorulan Security Soruları
Soru 9: JWT token yapısı nedir ve Spring Security'de JWT filtresini nasıl implemente edersiniz?
Soru 10: Method-level security'de @PreAuthorize ve @Secured annotasyonları arasındaki farklar nelerdir?
Mini Vaka Senaryosu: Güvenlik Implementasyonu
Ayşe, bir sağlık uygulamasında hasta verilerini koruma görevlidir. HIPAA uyumluluğu gerektiren bu projede, sadece authenticated kullanıcıların değil, aynı zamanda sadece yetkili rollerin (DOCTOR, NURSE, ADMIN) belirli endpoint'lere erişmesi gerekir. Ayşe, JWT tabanlı authentication implemente eder ve SecurityFilterChain'de role-based access control (RBAC) yapılandırır. Ayrıca, hassas verileri maskelemek için custom @MaskSensitiveData annotasyonu ve AOP kullanarak audit logging mekanizması oluşturur.
Değerlendirme Rubrikleri
Security değerlendirmesinde: Auth/Authz farkı (20%), JWT/OAuth2 implementasyon bilgisi (25%), Filter chain mimarisi anlayışı (20%), CSRF/CORS bilgisi (15%), Method-level security kullanımı (20%).
Spring MVC ve RESTful Web Servisleri Soruları
Spring MVC mülakat soruları, web katmanının temelini oluşturan DispatcherServlet yapısına odaklanır. DispatcherServlet, front controller pattern implementasyonu olarak tüm HTTP request'leri karşılar ve uygun handler'a (controller) yönlendirir. Request handling akışı: DispatcherServlet → HandlerMapping → Controller → HandlerAdapter → ViewResolver şeklinde ilerler. RESTful mimaride ise ViewResolver kullanılmaz ve JSON/XML response üretilir.
@RequestMapping, @GetMapping, @PostMapping gibi HTTP method mapping annotasyonları, URI path'leri ve HTTP method'ları ile controller method'larını eşleştirir. @RequestBody, JSON payload'ı Java objelerine deserialize ederken, @ResponseBody Java objelerini JSON'a serialize eder. Exception handling için @ControllerAdvice ve @ExceptionHandler kullanımı, merkezi hata yönetimi sağlar. HTTP status kodlarının doğru kullanımı (200 OK, 201 Created, 404 Not Found, 500 Internal Server Error) ve REST prensiplerine (statelessness, cacheability) uygunluk değerlendirilir.
Mini Vaka Senaryosu: REST API Tasarımı
Deniz, bir kütüphane yönetim sistemi için REST API tasarlamaktadır. Kitap ödünç alma işlemi için POST /api/loans endpoint'ini oluştururken, idempotent olmayan bu işlem için uygun HTTP status kodu seçimi yapmalıdır. 200 yerine 201 Created kullanır ve Location header'ında yeni kaynağın URI'sini döner. Validasyon hataları için @ControllerAdvice içinde MethodArgumentNotValidException handler'ı yazarak, 400 Bad Request ve detaylı hata mesajları döner. Content negotiation ile hem JSON hem XML desteği ekler.
Değerlendirme Rubrikleri
MVC/REST değerlendirmesinde: DispatcherServlet akış bilgisi (25%), HTTP method/status kod kullanımı (20%), Exception handling stratejileri (25%), Content negotiation (15%), REST prensipleri anlayışı (15%).
İleri Seviye Spring Konuları: Transaction ve Caching
İleri seviye Spring mülakat soruları transaction yönetimi ve caching stratejilerine odaklanır. ACID (Atomicity, Consistency, Isolation, Durability) prensipleri ve isolation seviyeleri (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE) veritabanı tutarlılığı açısından kritiktir. Programmatic transaction yönetimi (TransactionTemplate) declarative yönetime (@Transactional) göre daha esnek ancak daha verbose'tur. Propagation türleri, transaction'ın mevcut bağlamla nasıl etkileşime gireceğini belirler; REQUIRED (varsayılan), REQUIRES_NEW (yeni transaction), NESTED (nested savepoint) en yaygın kullanılanlardır.
Spring Cache abstraction, @Cacheable, @CacheEvict, @CachePut annotasyonları ile method seviyesinde caching sağlar. Distributed caching için Redis entegrasyonu, microservices ortamlarında stateless uygulamalar arasında cache paylaşımını mümkün kılar. Event-driven architecture'da ApplicationEvent ve ApplicationListener kullanımı, loosely coupled component'ler arası iletişim sağlar. Domain events ve transaction-bound events kullanımı da ileri seviye konulardır.
Mini Vaka Senaryosu: Distributed Transaction
Serhat, iki farklı veritabanı (PostgreSQL ve MongoDB) arasında veri tutarlılığı sağlamakla görevlendirilmiştir. XA protokolü kullanarak distributed transaction yönetimi implemente eder. Ancak performans sorunları nedeniyle Saga pattern'ine geçmeye karar verir. Spring'te @Transactional kullanımı yerine, her adımı ayrı transaction'da çalıştırır ve compensating transaction'lar (rollback işlemleri) tasarlar. Event-driven mimari kullanarak her başarılı adımdan sonra bir event publish eder ve sonraki adım bu event'i dinler.
Değerlendirme Rubrikleri
İleri seviye konularda: Transaction isolation seviyeleri (25%), Propagation ve rollback kuralları (25%), Cache stratejileri ve invalidation (20%), Event-driven architecture bilgisi (15%), Distributed transaction patterns (15%).
Mülakat Performansı ve Kariyer Gelişim Tavsiyeleri
Java backend mülakat hazırlığı sürecinde teknik bilginin yanı sıra iletişim becerileri de kritik öneme sahiptir. STAR (Situation, Task, Action, Result) metodu, geçmiş deneyimleri yapılandırarak anlatmak için kullanılır. Whiteboard coding ve live coding sırasında düşünce sürecini sesli olarak ifade etmek, clarifying questions (problem netleştirme soruları) sormak ve TDD (Test Driven Development) yaklaşımı göstermek büyük avantaj sağlar.
Junior, mid-level ve senior pozisyonlar arasındaki beklenti farkları belirgindir. Junior'lardan temel CRUD operasyonları ve basit dependency injection bilgisi beklenirken, mid-level'lardan design pattern kullanımı ve transaction yönetimi, senior'lardan ise system design, performance tuning ve architectural decision making beklenir. Portfolyo projelerinde Spring kullanımı, GitHub'da clean code örnekleri ve teknik blog yazıları kariyer gelişimini destekler. Sürekli öğrenme için Spring ekosistemini takip etmek (Spring Blog, SpringOne konferansları) ve yeni versiyonları (Spring Boot 3.x, Spring Framework 6) öğrenmek essential'dir.
Değerlendirme Rubrikleri
Genel mülakat değerlendirmesinde: Problem çözme yaklaşımı (30%), Kod kalitesi ve best practices (25%), Mimari düşünme yeteneği (25%), İletişim ve soft skills (20%).
Sıkça Sorulan Sorular
Spring Mülakatında En Sık Sorulan Temel Sorular Nelerdir?
Genellikle IOC (Inversion of Control), Dependency Injection türleri, Bean lifecycle, Spring Boot'un avantajları ve Spring MVC mimarisi hakkında sorular sorulur. Özellikle @Autowired kullanımı, Singleton scope ve Prototype scope farkları, REST controller oluşturma adımları en popüler başlıklardır.
Spring ve Spring Boot Arasındaki Farklar Nelerdir?
Spring Framework, kapsamlı bir enterprise Java framework'üdür ve konfigürasyon gerektirir. Spring Boot ise Spring'in üzerine inşa edilmiş, auto-configuration sunan ve stand-alone uygulamalar oluşturmayı kolaylaştıran bir extension'dur. Spring Boot, embedded server, starter dependencies ve production-ready metrics gibi özelliklerle geliştirme sürecini hızlandırır.
Dependency Injection Nedir ve Constructor Injection Neden Tercih Edilir?
Dependency Injection (DI), bir nesnenin bağımlılıklarının dışarıdan sağlanması tasarım desenidir. Constructor injection, bağımlılıkların sınıf oluşturulurken verilmesini sağlar ve immutable nesneler oluşturmayı, null pointer exception riskini azaltmayı ve test edilebilirliği artırmayı sağlar. Ayrıca circular dependency'leri compile-time'da tespit etmeye yardımcı olur.
Spring Mülakatına Teknik Olarak Nasıl Hazırlanmalıyım?
Öncelikle Spring Core konseptlerini (IOC, DI, AOP) pratik yaparak öğrenin. GitHub'da küçük projeler geliştirin. Spring Boot ile REST API oluşturmayı, JPA/Hibernate ile database işlemlerini ve temel security konfigürasyonlarını pratik edinin. LeetCode veya HackerRank'te Java algoritma soruları çözün. Son olarak, system design temellerini öğrenin.
Spring AOP Ne İşe Yarar ve Hangi Senaryolarda Kullanılır?
Aspect Oriented Programming (AOP), cross-cutting concerns (logging, transaction management, security, caching) gibi işlevleri business logic'ten ayırmayı sağlar. Örneğin, her metodun çalışma süresini loglamak, tüm servis katmanında transaction yönetimi yapmak veya yetkilendirme kontrollerini merkezi hale getirmek için kullanılır. Bu, kod tekrarını azaltır ve modülerliği artırır.
Spring Security'de Authentication ve Authorization Farkı Nedir?
Authentication (kimlik doğrulama), kullanıcının gerçekten o kişi olduğunu doğrulama sürecidir (username/password, token, biometric). Authorization (yetkilendirme) ise authenticated kullanıcının hangi kaynaklara erişebileceğini belirleme sürecidir (rol ve yetki kontrolleri). Spring Security'de AuthenticationManager authentication'dan, AccessDecisionManager ise authorization'dan sorumludur.
Junior ve Senior Seviyeler İçin Spring Mülakat Soruları Nasıl Değişir?
Junior seviyede temel annotasyonlar, CRUD operasyonları ve basit DI kullanımı sorulurken, Senior seviyede distributed systems, microservices mimarisi, Spring Cloud, performance optimization, memory management, custom annotation yazımı, Spring'in internal çalışma mekanizmaları (BeanPostProcessor, BeanFactoryPostProcessor) ve complex transaction senaryoları değerlendirilir.
Spring Mülakatında Kod Yazma Testi (Live Coding) Nasıl Yapılır?
Genellikle basit bir REST API endpoint'i oluşturma, database'den veri çekme, exception handling ve unit test yazma istenir. Adaydan kod yazarken düşünce sürecini sesli olarak anlatması, clean code prensiplerine dikkat etmesi, SOLID prensiplerini uygulaması ve TDD yaklaşımı göstermesi beklenir. Ayrıca, verilen senaryoya göre uygun design pattern seçimi de değerlendirilir.




