#1 Spring Nedir ? Spring Boot ve Spring Framework Neden Kullanılır?
Bu yazıda; büyük ölçekli veya kurumsal uygulamalar geliştirirken tercih edilen Spring Framework ve içerdikleri ile birlikte sağladığı avantajlardan kısaca bahsedicem.
Spring.io, Spring Source firmasının geliştirmiş olduğu ve kurumsal uygulamalara dönük çözümler getiren açık kaynak kodlu büyük bir ekosistemdir.
2003’de Mimarı Rod Johnson tarafından yayınlanmıştır. Java programlamayı herkes için çok daha hızlı, daha kolay ve daha güvenli hale getiren Spring; odak noktası olan hız, basitlik ve üretkenlik ile dünyanın en popüler Java frameworküdür. Spring’i “lord of the frameworks” olarak düşünebiliriz.
Spring tarafından sağlanan birçok araç ile, kullanıma hazır çözümlere sahip olmanın avantajlarından yararlanarak binlerce satır ek kod yazmaya ve ekstra zaman harcamaya gerek kalmıyor.
En önemli temel özellikleri : Inversion of Control (IoC) , Dependency Injection (DI), Aspect Oriented Programming (AOP), Core Container, Data Access/Integration, Model View Controller Architecture (MVC) ,
Sunduğu özellikle Inversion of Control — IOC (Kontrolü Spring’e Çevirme) yaklaşımı ve Dependency Injection — DI(Bağımlılık Enjeksiyonu) mekanizmasıyla tüm nesnelerin yönetimini kendi üstlenerek yazılım geliştiricilere büyük kolaylık sağlıyor.
AOP (Aspect Oriented Programming) modeli ile, kesişen ilgi noktalarının (Cross Cutting Concerns) birbirinden ayrılmasını kolaylaştırır. Örneklemek gerekirse : log ,security gibi modüller merkezi bir yerde toplanarak, programdan bağımsız bir şekilde çağrılabilir
MVC (Model View Controller) web uygulaması mimarisi ile uygulamanın arayüz, veri, iş-işlem gibi sorumluluk katmanlarını birbirinden ayrıştırır.
Neden Spring kullanmalıyız ?:
Spring is everywhere
Spring’in esnek kütüphanelerine dünyanın her yerindeki geliştiriciler güvenmektedir. Ayrıca, Alibaba, Amazon, Google, Microsoft ve daha fazlası dahil olmak üzere teknolojideki tüm büyük isimlerin katkılarına sahip.
Spring is flexible
Spring’in esnek ve kapsamlı extentionları ve third part kütüphaneleri, geliştiricilerin hemen hemen tüm uygulamaları oluşturmasına olanak tanıyor. Temelde, Spring Framework’ün Inversion of Control (IoC ve Dependency Injection (DI) özellikleri, çok çeşitli özellikler ve işlevsellik için altyapı sağlıyor.
Web için secure, reactive, cloud-based mikro hizmetler veya kurum için comxplex streaming veri akışları gibi birçok konuda size yardımcı olacak araçlara Spring ile sahip olabilirsiniz.
Spring is productive
Java geliştirme yaklaşımınızı ve deneyimlerinizi standart düzene sokar. Spring Boot, microservice geliştirmeyi çok kolay hale getirmek için application context ve auto-configured, embedded web sunucusu gibi gereksinimleri bir araya getirir. Örn : Spring Boot’u Spring Cloud’un zengin kütüphaneleri, pattern ve template leri ile birleştirerek rekor sürede bir microservie projeye çıkartabilirsiniz.
Spring is fast
Geliştiricileri Spring performansını çok önemsiyor. Spring ile, varsayılan olarak hızlı başlatma, hızlı kapanma ve optimize edilmiş yürütmeyi fark edeceksiniz. Spring projeleri, daha fazla verimlilik için reactive (nonblocking) programlama modelini de desteklemektedir.
Embedded web servers, auto-configuration, and “fat jars” gibi özellikler hızlıca geliştirmeye başlamanızı sağlarken, LiveReload in Spring DevTools gibi yenilikler, geliştiricilerin her zamankinden daha hızlı yineleme yapabilmesini sağlar.
Spring, geliştirici üretkenliğini (Developer productivity) super gücü olarak görüyor.
Spring Initializr (start.spring.io) ile saniyeler içinde yeni ve hazır bir Spring projesine başlayabilirsiniz.
Spring is secure
Spring, güvenlik sorunlarıyla hızlı ve sorumlu bir şekilde başa çıkma konusunda kendini kanıtlamıştır.
Spring Security, endüstri standardı güvenlik düzenleriyle entegre olmanızı ve varsayılan olarak güvenli çözümler sunmanızı kolaylaştırır.
Spring geliştiricileri bildirilen güvenlik açıklarını yamalamak-geliştirmek ve test etmek için güvenlik uzmanlarıyla birlikte çalışıyor. Third-party bağımlılıkları da yakından izlenir ve verilerinizi ve uygulamalarınızı olabildiğince güvenli tutmaya yardımcı olmak için düzenli güncellemeler yayınlanır.
Spring is supportive
Spring community devasa boyutta ve küresel çeşitlilikte her yaştan ve yetenekten insanı barındırıyor. İhtiyaç duyduğunuz tüm desteği ve kaynakları rahatça bulabilirsiniz : quickstarts, guides & tutorials, videos, meetups, support, training and certification.
Bu yazımda; genel olarak Spring nedir , Spring’in avantajları nelerdir, neden Spring kullanılır hakkında bazı bilgiler aktarmaya çalıştım.
Serinin ikinci yazısında, SpringProjects ile sağlanan Spring Framework modullerinden ve içerdiklerinden bahsedicem.