loading...

04/04/2023

Spring Framework Nedir?

Bu yazımda Spring Framework hakkında Türkçe kaynak olması açısından kısa bilgi geçip direkt olarak neyin ne olduğunu belirtip, lafı uzatmadan bir web projesine başlayarak backend’de Java kullanacağım. Sonrasında IDE’den bağımsız olarak ilerlemek adına projeyi nasıl Dockerize edebileceğimizi de görüp ardından frontend kısmında React ile devam edecek şekilde baştan sonra bir proje ile katmanlı mimari yapısına uygun örnek ile konuyu pekiştirmeyi hedefleyeceğim. Oldukça yalın, kafa karıştırmayacak şekilde bu işi basite indirgeyip, ezberden uzak, tamamen neyin ne olduğunu anlaya anlaya ilerleyeceğiz.

Bildiğimiz üzere JavaEE, ileri düzey java için gerekli yapıları kendi çatısında bulundurmakta. Bu Framework adı altında yatan anlam ise; kendisine, daha önceden özelleştirilmiş kodlamalarla beraber oluşturulmuş bir çatı olmasıdır ve bu çatı içerisinde birçok yapı bulunmakta.

Spring Framework

Spring Framework, modüler bir yapıya sahiptir. Bu modüler yapı içerisinde;

  • Spring Core
    • Bean = Bean yapıları oluşturma ve diğer verileri bağlamak. (Projede olması zorunlu yapıdır.)
    • Spring Data = Modülerdir. Projede kullanıp kullanmamak projeye bağlıdır.
    • IOC (Inversion oControl) = IOC ve DI (Dependency Injection), bu yapılar karıştırılabiliyor. Bu yapılar yan yana gösterilir fakat kesinlikle aynı değildir. Peki nedir bu yapıların olayı? Hiiiiç uzatmaya gerek yok.
      IOC : Spring Framework e “projem sana emanet, yönetimi ben sana veriyorum. Bu yönetimi doğru şekilde yap.” dedirttiğimiz kısımdır. Dependence leri kullanarak yönetimi sade ve bağımsız bir şekilde gerçekleştirir. Yani kısaca yönetimi Spring Framework e verme durumudur.

      DI (Dependency Injection) = Design pattern yapısıdır. Şunu söylemeye çalışır; biz öncelikle injection yapısından başlarız. Bu yapı, bir yerden alır başka bir yere taşımaya yarar. Bizim Bean datamız vardı, bu datayı alıp başka bir yerde kullanma durumu bir injection işlemidir. Backend dilindeki Java’da, dataları olabildiğince birbirinden bağımsız oldurmaya çalışırız. Neden? Çünkü eğer ki class lar birbirine ölümüne kenetlenmişse, yani class yapıları birbirine bağlı bir yapıdaysa, zincirleme şeklinde çalışıyorsa ve bir gün zincir içerisindeki class’lardan birinde bir hata veya class’ın silinmesi durumunda sistem çalışmaz hale gelir. Class’ları birbirine bağlı olarak tasarlarsak yukarıda belirttiğim gibi durumlarda sistem çalışmaz. Bu tür durumda sistem haberleşemez. None Connection durumu olur. İstenmeyen bir durumdur. Bu gibi sorunlar yaşamamak adına class’ları birbirinden bağımsız olarak tasarlamaya çalışırız. Peki bu tasarımı nasıl sağlayacağız? Tabii ki de OOP’ den Interface’ den Abstract yapılarını kullanarak…
      İşte bu bağımsızlığı kullanan yapı DI (Dependency Injection) yapısıdır.

Spring Modülleri

Spring Framework Runtime

Spring Framework 20 modüler yapıya sahiptir. Bu yapı Core Container üzerinde çalışır. Spring modülleri, uygulama geliştirme adımlarında bize rehberlik eder.

Data Access Integration : Database işlemlerinin yönetildiği kısımdır.

Web : MVC yapılarımız html işlemlerini kapsar.

AOP : Güvenlik ve loglama yapılarında kullanılır. Modüldür, projede kullanıp kullanmamak bize kalmış.

Spring Framework yapımızda – projemizde;

  • Core Container yapısı olmak zorundadır.
  • Geri kalan yapılar (Data Access I) (WEB)(AOP)(ASPECTS)(INSTRUMENTİON)(TEST) modülerdir, isteğe bağlı kullanılır. İster yazarız projemize ekleriz, istersek eklemeyiz.

Bu kısma kadar Spring Framework yapısından bahsettik. Biz projemizi sadece Spring Framework ile geliştirmeye çalışırsak, Spring Framework içerisinde xml olarak configration dosyaları vardır. Çok can sıkıcıdır. Spring Framework’ü ayağı kaldırmak için xml dosyaları ekleriz, çıkartırız, çeşitli Libraries ler ekleriz çıkartırız… Yani daha kodlamaya başlamadan bezdirir. Bunun böyle yürümeyeceğini farketmiş olalar ki, yazılımcı bunlarla uğraşmasın, direkt koduyla ilgilensin diye demişler ki; Spring Framework‘ü biz yine arkada kullanalım ama xml configrasyon işlemlerini kendisi yapsın. Bu nedir? Spring Boot tur ve Spring Boot yapısı burada devreye girmektedir.

Spring Boot, Spring Framework‘ü kullanan configration tool’u dur. Yani ayar dosyasıdır diye biliriz.

Bu yazımda ” Spring Framework Nedir? ” sorusunu elimden geldiğince basit bir şekilde cevapladım.
Bir sonraki yazımda Spring Boot içeriğine kısaca değinip örnek bir proje ile adım adım ve açıklayarak ilerleyeceğim.

Sorularınız için yorum bırakabilir veya buraya tıklayarak benimle iletişime geçebilirsiniz.

İyi çalışmalar dilerim.

Posted in Software DevelopmentTaggs:
Write a comment