Spring Framework Nedir?

M. Enes Oral
2 min readMar 4, 2020

--

Spring Framework, Java için geliştirilmiş açık kaynaklı bir uygulama geliştirme çatısıdır. Java Enterprise Edition uygulamalarının geliştirilmesini kolaylaştırır. Java dili ile kurumsal bir projeyi gerçekleştirmek için ihtiyacınız olan her şeyi sağlar.

2002 yılında yayımlanan Expert One-on-One J2EE Design and Development adlı kitabında Rod Johnson, Interface 21 adını taşıyan altyapı ile kurumsal projelerin nasıl daha hızlı gerçekleştirilebileceğini anlatmış ve bu altyapı daha sonrasında açık kaynaklı yazılıma dönüştürülerek Spring Framework’ün temellerini atmıştır.

Peki neden ihtiyaç duyuldu?

Spring Framework yayımlanmadan hemen önce kurumsal projeleri geliştirmek için Enterprise JavaBeans (EJB) 2.x teknolojileri tercih edilmekteydi. EJB 2.x teknolojileri her ne kadar kurumsal projelerin hakkından gelebilecek bir teknoloji olsa da zaten karmaşık olan kurumsal projeleri daha da karmaşık hale getirmekteydi. Çünkü uygulama sunucusundan hizmet (güvenlik, cache kullanımı veya loglama gibi) alabilmek için ‘business logic’ denilen işletme mantığının belli bir yapıda kodlanmış ve konfigüre edilmiş olması gerekiyordu.

Spring Framework ise kapsamlı bir kodlama ve konfigürasyon altyapı desteği sunarak geliştiriciyi ciddi bir iş yükünden kurtarır ve iş kurallarının uygulandığı işletme katmanına olan odağını artırır.

Kısaca Spring Framework yazılımın yapımını kolaylaştırır ve sadeleştirir.

Spring Framework Modülleri

1- Core Container

Spring Framework’ün temelini oluşturan Inversion Of Control(IoC) ve Dependency Injection(DI) özellikleri bu modül içerisinde implemente edilmiştir. Diğer tüm Spring modülleri bu modüle bağımlıdır.

2- Aspect Oriented Programming (AOP)

Aspect Oriented Programming bu modülde implemente edilmiştir.

Bir sınıf içerisinde implemente edilen mantığın yanı sıra transaction, logging gibi işlemlerin de olduğunu düşünelim. Bu Single Responsibility Principle’a aykırıdır. Çünkü sınıfın sadece bir iş yapması gerekirken, transaction ve logging işlemlerini de gerçekleştirmiştir. Aspect Oriented Programming bu tarz (transaction, logging vb.) işlemleri bir yerde toplayarak programdan bağımsız bir yerde implemente eder.

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

3- Web

Bu katman Web, Web-Servlet ve Web-Portlet modüllerini barındırır.
Web-Servlet modülü, Spring’in web uygulamaları için Model-View-Controller(MVC) metodun implementasyonunu sağlar.

4- Data Access/Integration

Bu katman JDBC, ORM, OXM, JMS ve Transaction modüllerini barındırır. Basitçe bu modüller veri tabanı işlemlerini gerçekleştirmeyi sağlar.

5- Test

Test modülü, JUnit veya TestNG kullanarak Spring bileşenlerinin test edilmesini destekleyen Test Framework'ü içerir.

Yazıda bahsedilen Inversion of Control ve Dependency Injection konularından bahsettiğim yazıya buradan ulaşabilirsiniz.

Daha fazlası için:

End Of File

--

--