Spring Framework Nedir?

Standart
Bilgiyi paylaşarak çoğalt !Tweet about this on TwitterShare on LinkedIn0Share on Google+0Share on Facebook0Pin on Pinterest0

Spring, enterprise Java için kullanılan çok popüler bir uygulama geliştirme frameworküdür.  Dünya çapında milyonlarca geliştirici, yüksek performans, kolay test ve tekrar kullanılabilir kod kolaylığı oluşturmak için Spring Framework’ünü kullanıyor.

Spring framework Rod Johnson tarafından yazılmış ve açık kaynaklı bir Java platformudur. İlk yayınlanması Apache 2.0 lisansı altında olmuştur.

Spring Framework’ünün core üzellikleri herhangi bir Java uygulamasında geliştirme yapmak için kullanılabilir ama web ugygulamaları (Java EE platformu) için ayrıca eklentisi bulunmaktadır.

Spring Framework’ünü kullanmanın faydaları:

  • Spring geliştiricilere, POJO’ları kullanarak enterprise-class uygulamaları geliştirmeye olanak sağlıyor.
  • Spring tekerlek icat edilmişken tekrardan tekerleği bulmanızı önler. Var olan teknolojileri – örneğin ORM frameworkleri, loglama frameworkleri, JEE, Qurtz ve JDK zamanlayıcıları vb. – etklili birşekilde kullanmanızı sağlar.
  • Spring ile yazılmış bir uygulamayı test etmek basittir çünkü environment bağımlı kod spring frameworkünün içine taşınıyor.

Dependency Injection (DI)

Yazılım geliştirme sürecinde en önemli konulardan biri şüphesiz yazılımın iyi tasarlanmış olmasıdır. Bu projenin geliştirilmesi yönetilmesi ve devamlılığı için çok önemlidir. Proje büyümeye başladıkça yeni ihtiyaçlar, yeni geliştirmeler, ekstra özellikler kazanarak devleşmeye başlar.

Büyük şirketler dahil çoğunlukla önce projenin hayata geçirilmesini isterler; şimdilik bu şekilde yapalım ilk versiyonu çıkartalım biraz ilerleyelim, ileride bunları raylara oturturuz gibi düşünceler yer almaktadır. Ancak iyi hazırlanmamış bir zemine sürekli yeni şeyler inşa etmek sallantılı bir süreç getirir. İlk zamanlarda problem yaşanmasa da ileride proje geliştikçe büyüdükçe ortaya çıkması kaçınılmaz olabiliyor. Ve ileride ya toparlanma zamanı hiç gelmez yada toparlamaya kalktığınızda işin içinden çıkamaz hale gelinebiliyor. Bazen yeni bir özellik eklemek projeyi yeniden yazmaktan daha zor olabiliyor bu sebeple.

Dependency injection: bağımlılıkların dışarıdan enjecte edilmesi anlamına gelir.

Yani nedir; yazılımı oluşturan yapıların birbirleri ile olan bağı en aza indirmek. Buna loosely coupled-Gevşek bağlılık denir.

DI bize şunları sağlar:

  • Yazılımı oluşturan yapıların birbirleri ile olan sıkı bağ azaldığı için, uygulamaya yeni özellikler eklenip çıkartılabilmesi kolay hale gelir.
  • Uygulama içerisinde değiştirilmesi müdahale edilmesi gereken yerler minumuma iner.
  • Test edilebilir yapılar ortaya çıkar.

Spring Dependency Injection mekanızmasını başarılı bir şekilde kullanmamızı sağlar.

Aspect Oriented Programming AOP:

AOP, yazılımdaki birbiri ile kesişen ilgileri(cross-cutting concerns) ve bu ilgilerin oluşturduğu karmaşıklığı çözmek adına ortaya çıkmış bir çözüm yöntemidir. Yazılım geliştirken, en zorlayıcı kısım genellikle birbiri ile kesişen ilgileri basitleştirmektir. Geliştirdiğimiz uygulamaların yaşam süresinde oluşabilecek, yeni gereksinimleri, sorunları daha kolay yönetebilmek adına birbiri ile kesişen ilgileri en basit halde ele almamız gerekir.

AOP, yazılımın yaşam süresi boyunca oluşabilecek ilgilerin bir biri ile kesişmesini ve karmaşıklığa yol açmasını engellemek adına OOP’den farklılaşıyor. Biraz daha teknik olarak açıklamak gerekirse, bir uygulamanın run-time süresinde ortaya çıkabilecek ilgileri ayırmak açısından farklılaşıyor diyebiliriz. Spring Framework’ü de AOP desteklediği için bu gibi problemlerden korunmamızı sağlıyor.

Leave a Reply