Spring vs Spring Boot | Spring Temel Anotasyonlar | Dependency Injection Spring'de Nasıl Sağlanıyor

Поделиться
HTML-код
  • Опубликовано: 15 май 2021
  • Merhaba arkadaşlar,
    Bu derste Spring ve Spring temel bileşenlerinden bahsedeceğiz.
    Spring kolayca web uygulaması geliştirmemizi sağlayan bir frameworktür. Spring bize çeşitli yardımcı modeller sunarak, uygulamaları hızlıca geliştirmemizi sağlar. Spring-boot ise; Spring’in hazır yapılandırılmış halidir. Yani spring-boot kullanarak anında bir tomcat üzerinde ayağa kalkacak web uygulaması oluşturabiliriz ama spring’de bunu yapmak için extra configurasyonlar gerekir.
    Bilindiği üzere Spring kütüphanesinin en önemli özelliği Dependency Injection dır.
    Tamam anladık ama Dependency Injection nedir?
    Dependency Injection, programlama kodundan bağımlılığı ortadan kaldıran bir tasarım modelidir.
    Dependency Injection kullanarak; uygulamayı yönetmek ve test etmek kolaylaşır.
    Daha iyi anlamak için, bir örnek üzerinde görelim:
    Önce, Dependency Injection kullanmadan bir örnek görelim.
    Daha sonra, Dependency Injectionle bu örneği revize edelim.
    Örneğin, UserService gibi bir sınıfımız olsun.
    UserService'de UserRepository'yi çağırmak istiyoruz ve saveUser metodu ile kullanıcıyı veritabanına kaydetmek istiyoruz.
    Bunu yapmak için UserRepository sınıfını kolayca oluşturabilir ve doğrudan saveUser yönteminden çağırabiliriz.
    Tamam. Bu şimdilik sorunumuzu çözüyor.
    Ancak daha sonra bir nedenden dolayı, UserRepository'yi farklı Depo ile değiştirmemiz gerekse.
    Örneğin AdminRepository ile değiştirmek gibi.
    Bunu yapmak için, her değişiklik isteği için UserService sınıfını değiştirmeliyiz.
    Yani sorun şu; UserService, UserRepository veya AdminRepository ile yakından bağlantılıdır.
    Öyleyse bundan nasıl kaçınabiliriz?
    Elbette Dependency Injection kullanarak bundan kaçınabiliriz.
    Ve bunu Dependency-inversion prensibini kullanarak çözebiliriz.
    Dependency-inversion ilkesi bir solid prensibidir.
    Dependency-inversion İlkesi, yüksek seviyeli modüllerin düşük seviyeli modüllere bağlı olmaması gerektiğini belirtir.
    Her ikisi de soyut sınıflara bağlı olmalıdır.
    Ayrıca soyut ayrıntılara da bağlı olmamalıdır. Detay sınıflar soyut sınıflara bağlı olmalıdır.
    Tamam. Şimdi bunları örneğimizde görelim:
    Öncelikle UserRepository sınıfı soyut sınıfa bağlı olmalıdır. Bunu yapmak için UserRepository için arayüz oluşturabiliriz.
    Daha sonra UserRepository UserRepositoryImpl sınıfı ile uygulanabilir.
    Daha sonra UserRepositoryImpl sınıfı UserRepository'ye bağlı olabilir.
    Yani böyle yaparak, Dependency Inversion ilkesini sürdürebiliriz.
    Dependency Injection’i sağlamak için UserRepository’i iki yolla enjekte edebiliriz;
    Birincisi, onu constructor ile enjekte edebiliriz.
    İkincisi, setter kullanarak enjekte edebiliriz.
    Ne de olsa enjeksiyonla her yerde çağırabiliriz.
    Depo değiştirilirse, değişiklik yapılmadan UserService yöntemlerini kolayca çağırabiliriz.
    Hem constructor hem de setter Dependency Injection bağımlılığı azaltır.
    Tamam. Şimdi Spring'in Dependency Injection’i nasıl ele aldığından bahsedebiliriz.
    ............
    Daha fazlası için: www.udemy.com/course/adim-adi...
  • НаукаНаука

Комментарии • 3

  • @hikmetnri
    @hikmetnri Год назад

    Spring boot ile sıfırdan türkçe eğitim seti de çekebilir misiniz türkiyede türkçe kaynak pek fazla yok.

  • @guvenayvazoglu6412
    @guvenayvazoglu6412 2 года назад

    Şenol hocam merhaba udemyden kursunuzu almak istiyorum ama suan fiyatlar ucuk indirimi beklemek istemedim sizde kupon var mı indirimli alabiliyor muyuz (Angular ve Spring Boot ile Full Stack Uygulama Geliştirme
    )

    • @senolatac451
      @senolatac451  2 года назад +1

      www.udemy.com/course/angular-ve-spring-boot-ile-full-stack-uygulama-gelistirme/?couponCode=87DB63742AB45993BA23