Spring Framework Nedir?

watch_later 2/01/2016
comment 2 Comments
Spring Framework, Spring Source firmasının geliştirmiş olduğu ve kurumsal uygulamalara dönük çözümler getiren büyük bir ekosistemdir. Java platformunun gücü sahip olduğu topluluklardan gelmektedir. Spring Source firması bu topluluklardan yalnızca birisidir. Spring Frameworkün sunduğu özellikle Inversion of Control (Kontrolü Spring’e Çevirme) yaklaşımı ile yazılım geliştiricilere büyük kolaylıklar sağlamaktadır. Dependency Injection (Bağımlılık Enjeksiyonu) mekanizması tüm nesnelerin yönetimini kendi üstlenerek, yazılım mühendisliğinde arzu edilen nesneler arası bağlaşımı koparma (de-coupling) işlemini esnek bir şekilde karşılamaktadır. Yazılım geliştiricilere sadece, bir XML konfigürasyon dosyasında ya da notasyon bazlı yapılandırıcılar ile hangi nesnelerin hangi nesne referanslarına bağlanacağını belirtmek kalmaktadır. Inversion Of Control (IOC) ve Dependency Injection (DI) kavramları Spring Frameworkün çekirdeğini oluşturmaktadır.

Spring Framework Modülleri
Spring Core (Çekirdek Spring) modülü haricindeki modülleri kullanmak isteğe bağlıdır. Hiç kullanılmayabilir ya da arzu edilen ve benzer fonksiyonu yerine getiren diğer açık kaynak teknolojiler kullanılabilir.

Inversion Of Control (IOC)
Uygulama geliştiriciler bir programlama dili üzerinde uygulama geliştirirken, ihtiyaç duydukları nesnelere ait tüm yaşam sürecini kendileri yönetmektedirler. Java programlama dilinde nesneleri oluşturmak ve nesneler arası ilişkiyi kurmak yazılım geliştiricinin görevi iken nesneyi sonlandırmak çöp toplayıcı (garbage collector)’ün görevidir. Spring Framework kendi container servisleriyle ve IOC (Inversion Of Control) mekanizması ile Java nesnelerinin oluşturulması ve yaşam döngüsü tayin etme ve bu yaşam döngüsünü takip etme konusunda tüm sorumluluğu kendi üstüne almaktadır.

Bağımlılık (Coupling) ve Bağımlılık Kesme (De-Coupling)
Nesneye yönelik programlama dillerinde, yazılım geliştiricilerin oluşturduğu nesneler, geliştirme zamanında birbirleriyle ilişkilendirilirler. Bu ilişki kalıtım (inheritance) ve kompozisyon (composition) yöntemlerinden biri ile gerçekleştirilebilmektedir.

Spring Core
Spring Core paketi, Spring’in temelini oluşturur. Bağlantı kesme gibi temel fonksiyonlar Spring Core içine dahil edilmiştir.

Spring AOP                                                                                                                              
Spring’in AOP özellikleri direk kullanılmasa da deklaratif transaksiyon ve güvenlik uygulamalarında Spring AOP, Spring Core tarafından dolaylı olarak kullanılır.

Spring MVC
Spring MVC (Model-View-Controller) Spring baz alınarak web tabanlı programlar oluşturulabilir. Spring MVC bir web framework olarak kullanılır.

Spring Context
ApplicationContext ve WebApplicationContext gibi sınıflar bu modülde bulunur. XML dosyalarından bulunan Spring bean tanımlamalarını okumak ve Spring bean
nesnelerini oluşturmak için kullanılırlar.

Spring DAO (Database Access Object)
Bilgi bankaları üzerinde işlem yapmak için kullanılan JDBC teknolojisini kullanımda daha
basit hale getiren sınıflar bu modül içinde yer alır.

Spring ORM (Object Relational Mapping):
Bu modül Hibernate, JDO, TopLink ve IBatis gibi popüler ORM frameworkler ile entegrasyonu sağlamaktır.

Bağımlılık Enjeksiyonu (Dependency Injection)
Spring Frameworkün temelini(core) Bağımlılık Enjeksiyonu (Dependency Injection) ve IOC (Inversion Of Control) kavramları oluşturmaktadır. IOC (Inversion Of Control) nesne oluşturma ve yönetme sorumluluğunu yazılım geliştiriciden kendisine çekerken, Bağımlılık Enjeksiyonu (Dependency Injection) ise yazılım geliştiricilerin uygulamalarında ihtiyaç duyduğu nesneleri (beans), diğer nesneler ile ilişkilendirirken, ilişki kurma işini yazılım geliştiriciden Spring Framework dahilinde bulunan Bağımlılık Enjektörü(Dependency Injector)’ne devretmesini tanımlamaktadır.

Bağımlılık Enjeksiyon Simülasyonu
Neden Spring Kullanmalıyım?
Spring Frameworkün en büyük avantajlarından biri ise Uygulama Sunucularına olan bağımlılığı ortadan kaldırmasıdır.(GlassFish, JBoss, WebLogic vb.) Uygulama Sunucuları (Application Servers) container servislerini (Dependency Injection, IOC, EJB ,AOP vb.) uygulama sunucularının çekirdeğinde barındırırken, Spring Framework ise container servislerini sahip olduğu kütüphaneler aracılığı ile gerçekleştirmektedir. Bu sayede Spring Framework ile geliştirilen kurumsal projeler uygulama sunucularına bağımlılıkları olmadan, basit bir Servlet Container üzerinde yürütülebilmektedir.(Apache Tomcat, Jetty vb.)Servlet Container ürünleri genel itibariyle boyut bakımından 5-10 MB bandında olmaktayken, bir uygulama sunucusunu 50-300 MB bandında görmek mümkündür. Sistem kaynaklarının sınırlı ve ölçülü olduğu ortamlarda Spring Framework den faydalanmak mantıklıdır. Spring Framework ile kurumsal uygulamaların ihtiyaç duyduğu fonksiyonlar, Java EE spesifikasyon kümesi dahilinde bulunan teknolojilerden bağımsız ya da kısmen bağımlı şekilde karşılanabilmektedir. Kurumsal uygulamalarda hangi teknolojilerden faydalanılacağı, kurumların şartları, durumları ve ihtiyaçları ölçüsünde karar verilmelidir.

Neden Spring MVC?
Spring MVC Web Uygulamaları MVC teknolojisinin 3 temel bileşenini(Model, View, Controller) kullanır.
  1. Models: Genel olarak BLL olarak adlandırılan servis katmanlarına  DAL da ki objelerimize karşılık gelmektedir.
  2. Views: Kullanıcı arayüzlerini geliştirdiğimiz genelde Java Standard Tag Library (JSTL) kullanılarak geliştirilen JSP’lerdir.
  3. Controllers: Bu katmanda kullanıcı isteklerini karşılayan ve BLL katmanımızla etkileşim içerisinde olan MVC bileşenidir.
Spring MVC Simülayonu


Bir sonraki yazımda görüşmek üzere…
avatar
Adsız

Spring mvc projesi oluşturma makalesi yazabilir misiniz...

delete 5 Şubat 2016 10:17
avatar

Çok yakında olacak inş.

delete 5 Şubat 2016 23:01



sentiment_satisfied Emoticon