9. Ekim 2012‘ de,
Mike Youngstrom, web uygulama mimarilerine destek için jira üzerinden
bir talep oluşturdu.
10. Ekim 2012‘ de,
Mike Youngstrom, web uygulama mimarilerine destek için jira üzerinden
bir talep oluşturdu.
I think that Spring’s web application architecture can be significantly simplified
if it were to provided tools and a reference architecture that leveraged the Spring
component and configuration model from top to bottom. Embedding and unifying the
configuration of those common web container services within a Spring Container
bootstrapped from a simple main() method.
13. Spring Boot, konfigürasyon, bağımlılık yönetimi
ve geliştirme kolaylığı açısından önemli ağrı
noktalarını ortadan kaldırarak Spring ile Java
geliştirmeyi basitleştirmeyi amaçlamaktadır.
Spring Boot, Spring çerçevesinin üstüne inşa
edilmiş bir projedir.
28. Spring Boot Actuator, uygulamaların production ortamına hazır özellikleri (health check,
disk usage, heap dump vs.) otomatik aktifleştirir ve farklı HTTP endpoint’ ler ile
etkileşimde bulunmayı sağlayan bir yapı sunar.
33. Sonuç olarak
Maven yapılandırmasını kolaylaştırmak için başlangıç POM’larını sağlar.
34. Sonuç olarak
Maven yapılandırmasını kolaylaştırmak için başlangıç POM’larını sağlar.
Spring bağımlılıklarını kolaylaştırır, versiyon çakışmalarını önler.
35. Sonuç olarak
Maven yapılandırmasını kolaylaştırmak için başlangıç POM’larını sağlar.
Spring bağımlılıklarını kolaylaştırır, versiyon çakışmalarını önler.
Bir uygulama komut satırından direkt olarak çalıştırılabilir.
36. Sonuç olarak
Maven yapılandırmasını kolaylaştırmak için başlangıç POM’larını sağlar.
Spring bağımlılıklarını kolaylaştırır, versiyon çakışmalarını önler.
Bir uygulama komut satırından direkt olarak çalıştırılabilir.
boilerplate yani basmakalıp kodlardan sıyrılıp sadece ihtiyacımız olan
kodları yazmamızı sağlar.
37. Sonuç olarak
Maven yapılandırmasını kolaylaştırmak için başlangıç POM’larını sağlar.
Spring bağımlılıklarını kolaylaştırır, versiyon çakışmalarını önler.
Bir uygulama komut satırından direkt olarak çalıştırılabilir.
boilerplate yani basmakalıp kodlardan sıyrılıp sadece ihtiyacımız olan
kodları yazmamızı sağlar.
Üretime hazır özellikleri sağlar.
Editor's Notes
Bugün hangi konulara değineceğiz ?
Bazıları Java EE ve Spring'in rekabette olduğunu düşünürken, Spring, aslında Java EE'yi tamamlayıcıdır.
JEE spesifikasyonlarının karmaşıklığına bir cevap olarak ortaya çıkmıştır. JEE'nin kışından sonra yeni bir başlangıcı temsil ettiği için Bahar ismi vermiştir. Yani Java’nın Baharı …
Spring ; işimizi kolaylaştırarak bize zaman kazandıran, application framework (uygulama geliştirme) çatısıdır. Spring çeşitli yardımcı modüller ile kurumsal projere oldukça şık çözümler sunan dev bir eko sistemdir.
Spring kullanmak demek tüm modüllerini kullanmak demek değildir. Sadece Spring Core temel modülünü kullanmak zorundayız. Diğer modüllerin kullanımı isteğe bağlıdır. Eğer ihtiyacımız varsa diğer modülleri de projeye ekleyip hepsini bir arada sorunsuzca kullanabiliriz. Mesela projenizde Spring MVC yerine JSF’yi, Vaadin’i ya da GWT’yi rahatlıkla kullanabilirsiniz. Başka çatıları Spring Core ile birlikte kullanmakta herhangi bir sorun yoktur.
Spring Framework 1.0.x (Mart 2004)
Spring Framework 2.0.x (Ekim 2006)
Spring Framework 2.5.x (Kasım 2007)
Spring Framework 3.0.x (Aralık 2009)
Spring Framework 3.1.x (Şubat 2011)
Spring Framework 3.2.x (Aralık 2012)
Spring Framework 4.0.x (Şubat 2014)
Spring Framework 4.1.x (Eylül 2014)
Spring Framework 4.2.x (Temmuz 2015)
Spring Framework 5.0.x (Haziran 2017)
Basit bir Spring projesi oluştursaydık
Mike Youngstrom der ki ; Spring'in web uygulama mimarisinin, Spring bileşenini ve yapılandırma modelini baştan sona kaldıran bir referans mimarisi sağlanırsa, büyük ölçüde basitleştirilebileceğini düşünüyorum. Şöyle ki , basit bir ana metot içerisinde ortak web container servislerin konfigürasyonlarını gömerek.
Mike Youngstrom der ki ; Spring'in web uygulama mimarisinin, Spring bileşenini ve yapılandırma modelini baştan sona kaldıran bir referans mimarisi sağlanırsa, büyük ölçüde basitleştirilebileceğini düşünüyorum. Şöyle ki , basit bir ana metot içerisinde ortak web container servislerin konfigürasyonlarını gömerek.
Açılan jira talebi ile , “The Spring Team“ 2013 yılının başlarında “Varsayılan Yapılandırma” sloganıyla kolları sıvıyolar ve Nisan 2014'te, SpringBoot 1.0.0 çıkıyor.
Spring Boot, oluşturması kolay ve üretim kalitesinde tek başına çalışabilen, Spring tabanlı uygulamaların oluşturulmasını kolaylaştırır.
SpringBoot gerçekten olması gereklidir midir ? Getirdiklerine bakalım ve karar verelim.
SpringBoot’un getirdikleri
Spring çerçevesinde, her şeyi kendiniz için konfigüre etmeniz gerekir. Bu nedenle, XML tanımlayıcıları gibi birçok yapılandırma dosyasına sahip olabilirsiniz. Bu, Spring Boot'un sizin için çözdüğü temel sorunlardan biri.
Spring konfigürasyonunu otomatize ediyor ve sizi config dosyalarıyla uğraşmaktan kurtarıyor.
Sadece, Spring Boot uygulamanıza @EnableAutoConfiguration notasyonu eklemeniz gerekir. Görüldüğü gibi çok kolay . Yani, istemiyorsanız, tüm bu özellikleri kullanmaya zorlamazsınız.
SpringBoot’un getirdikleri
Dürüst olmak gerekirse, o kadar basit değil.
Spring Boot ile Tomcat, Jetty ve Undertow direkt gömülü olarak geliyor. Böylece bir web uygulamasını çalıştırmamızı sağlıyor. Bu da bağımsız uygulamalar geliştirme olanağı sağlıyor. Default olarak tomcat gelmektedir ama istenirse property dosyasından jetty veya undertow kullanılabilir.
Tek yapıması gerekn mvn spring-boot:run
SpringBoot’un getirdikleri
Spring Initializer : Sizin için ilk proje yapısını oluşturabilen bir web uygulaması. Bu, başlangıç proje kurulum bölümünü basitleştirir.
SpringBoot’un getirdikleri
http://localhost:8080/actuator/health
SpringBoot’un getirdikleri
Bu özellik ortak bağımlılıkları bir araya toplar. Örneğin, Spring MVC tabanlı RESTful servislerini geliştirmek istiyorsanız, Spring MVC JAR ve Jackson JAR dosyasını sınıf yoluna dahil etmek yerine, sadece spring-boot-web-starter'ı belirtebilirsiniz ve otomatik olarak bu JAR dosyalarını indirecektir. Spring Boot, verimliliği artırmak için bu tür birçok Starters bağımlılığı ile birlikte gelir. Bağımlılık Uyumluluk sorunlarını ortadan kaldırır.
Test için genellikle şu kütüphane setini kullanırız: Spring Test, JUnit, Hamcrest ve Mockito. Tüm bu kütüphaneleri manuel olarak ekleyebiliriz, ancak Spring Boot başlatıcısı bu kütüphaneleri otomatik olarak ekler
SpringBoot’un sadeliği, java geliştiricileri tarafından projenin hızlı bir şekilde benimsenmesine yol açmıştır.
Spring boot, java'da REST tabanlı microservis uygulamaları geliştirmek için en hızlı yollardan biridir. Ayrıca container ve hızlı prototipleme için çok uygundur.