Odak modu
Bu bölümde yazılım geliştirmede önemli bir prensip olan "Inversion of Control (IoC)" konusunu ele alacağız. Bu konsept, Spring gibi frameworklerde sıkça kullanılır ve yazılım geliştirme süreçlerini daha esnek ve yönetilebilir hale getirir.
Başlangıçta, projemizde bir customer controller'ı vardı ve bu controller, presentation katmanları ile customer service üzerinden iletişim kuruyordu. Ancak, bağımlılıkları manuel olarak yönetmek zorunda kaldık. İşte burada IoC ve dependency injection devreye girer.
Spring Framework, bu bağımlılıkları yönetmek için 3 farklı yöntem sunar: constructor injection, field injection ve setter injection. Constructor injection, bir sınıf içinde private final olarak tanımlanan bir nesnenin, constructor'da çağrılmasıyla bağımlılığın otomatik olarak enjekte edilmesini sağlar.
Java Spring 4.3 öncesinde, bu işlemi gerçekleştirmek için @Autowired kullanmamız gerekiyordu. Ancak, 4.3 sürümü ve sonrasında bu işlemi otomatik algılamaya gerek duyulmuyor. Yani, bir sınıf içinde private final ile tanımlanan bir nesne varsa ve bu nesne constructor'da çağrılıyorsa, Spring bu bağımlılığı otomatik olarak enjekte eder.
Setter injection ise, bir sınıf içinde bir setter metodu aracılığıyla bağımlılıkları enjekte etme yöntemidir. Bu şekilde, setter metodu içinde bağımlılıkları yönetebiliriz.
Son olarak, bağımlılıkları doğrudan private bir alanda tanımlayarak da IoC prensibini uygulayabiliriz. Bu yöntemlerden hangisinin kullanılacağı, projenin gereksinimlerine ve geliştirici tercihlerine bağlıdır.
IoC, yazılım geliştirmenin daha az bağımlılıkla, daha iyi test edilebilir ve hataları minimum seviyede tutabileceği bir yapı sağlar. Spring Framework, bu prensipleri otomatikleştirerek yazılımcılara büyük kolaylık sağlar.
Bu konseptlerin nasıl uygulandığını ve Spring Boot üzerinden nasıl yönetildiğini bir sonraki bölümde detaylı bir şekilde inceleyeceğiz. Görüşmek üzere!
Sektörde en çok aranan yazılım becerilerini kazan
Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.
Yunus Emre Kabakcı
Patika+ mezunuPatika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,
3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!
“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“
Yorum yapabilmek için derse kayıt olmalısın!