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!
Yazılım Kariyerinde İlerlemeni Hızlandıracak Programlar
Patika+ programlarımız ile 4-8 aylık yoğun yazılım kamplarına katıl, temel bilgilerden başlayarak kapsamlı bilgiler edin, yazılım kariyerine başla!
Yorum yapabilmek için derse kayıt olmalısın!