Spring’i Spring Boot ile Tanıyalım

Java Spring, Spring, Spring Boot

Spring’i Spring Boot ile Tanıyalım

Daha önceki yazımda Spring Boot ile ilgili bir özet yazmıştım. Bu yazımda konuyu hafifçe derinleştireceğim. Fakat yine de oldukça yüzeysel kalacağım. Bu yazıda Spring Boot’un kurulumu, demo uygulama falan olmayacak. Bunun yerine Spring Boot’un ne olduğu, bizlere neler sağladığından bahsedeceğim. Adım adım gitmekte fayda olduğunu düşünüyorum.

Yeni bir teknoloji öğrenmek heyecan verici olduğu kadar kafa karıştırıcı ve sinir bozucu da olabilir. Nereden başlayacağını bilmek gerçekten zor olabilir ve doğru yerden başlamazsak çabucak bunalabiliriz.Neyse ki Spring Boot, Spring’i öğrenmeyi kolay ve hızlı bir hale getiriyor.  Geliştiriciler, sahne arkasında neler olduğunu anlamaya ihtiyaç duymadan doğrudan Spring geliştirme aşamasına geçebilirler. Öğrenmeye başlayıp ve bilgili hale geldikçe, geri dönüp, detaylar hakkında daha fazla şey öğrenebilirler. Şunu kesinlikle belirtmeliyim ki, kolay demek özellik eksikliği anlamına gelmez. Frameworkler genelde ne kadar  mükemmel ve kolay olduklarıyla övünürler fakat bir gerçek bir uygulama (real-world) geliştirdiğinizde gerçek yüzlerini size gösterirler.

Spring Boot’un Anahtar Özelliklerini Anlamak

Öncelikle Spring Boot’un Spring ailesinin bir parçası olduğunu ve Spring Framework’ünün üzerine geliştirildiğini unutmayalım. Dolayısıyla Spring boot kullanarak hem web uygulamarı  hem de web üzerinde çalışmayan uygulamları geliştirebilirsiniz. Spring Boot, birkaç tane onu benzersiz yapan ve kullanımı kolay özelliklere sahiptir. Bu  özelliklere bir bakalım

  1. Otomatik Yapılandırır (Auto-Configurations)

Spring Boot’un en dikkate değer özelliklerinden biri olan auto-configurations’a bir göz atalım.

Otomatik yapılandırma, bir uygulama için en iyi tahmin yapılandırmasını sağlayan bir Spring Boot özelliğidir. Dokümantasyonda da belirtildiği gibi, Spring uygulamanıza eklediğiniz bağımlılıkları dikkate alarak bir otomatik yapılandırma yapar. Bunu uygulamanın bağlamına göre akıllı olarak yapar. Bunu gerçek dünyadan bir örnekle açıklayalım;

Birine tabak verdiğinizi düşünün. Bu tabak yanında çatal, kaşık ve bıçak koymak istemeniz son derece normal bir davranış olacaktır. Fakat birine içerisinde kurabiye olan bir tabak verdiğinizi düşünelim. Bu tabağından yanında çatal, kaşık ve bıçak koymak ne derece mantıklı olur? Çatal ve bıçak kullanarak yenmeyecek bir besine gereksiz yere kaynak kullanmış olduruz ki bu da istemediğimiz birşey.

Spring Boot’ta aynı şekilde uygulamanın bağlamına göre bu işe karar veriyor.

Yazılımsal bir örnek verecek olursak,

Spring Boot, bir uygulamanın veritabanıyla ilgili belirli bir bağımlılığa (dependency) sahip olduğunu fark ederse, büyük olasılıkla belirli şeylerin bu veritabanına erişmesi için yapılandırılması gerektiği düşünecektir.

Spring Boot’un bu özelliği aktif hale getirmek son derece basittir. @EnableAutoConfiguration notasyonunu Spring Boot uygulamanıza eklemeniz yeterli olacaktır.

  1. Bağımsızdır (Standalone)

Spring Boot standalone bir uygulamadır. Çalıştırmak için herhangi bir şekilde bir web sunucuna deploy etmeniz gerekmez. Uygulamayı basitçe bir komutla çalıştırabilirsiniz. Yani sırandan bir uygulamayı nasıl çalıştırıyorsanız spring boot uygulamasını da aynı şekilde çalışıtrabilirsiniz.

Daha önce java’da web uygulaması geliştirmediyseniz bu size büyük bir özellikmiş gibi gelemeyebilir. Ne kadar zor olabilir ki çift tıkla veya bir komut girince ya da F5 tuşuna basınca çalışır diye düşünebilirsiniz. Hiçte bile : )

Standart bir java web uygulamasının nasıl çalıştığına bir bakalım isterseniz.

İlk öne uygulamanızı paketlersiniz. Bunu bir ziplemek olarak düşünebilirsiniz. Daha sonra web sunucunuza karar verip onu sisteminize indirirsiniz. Kendi içinde artıları eksileri olan bir çok web sunucu mevcuttur. İndirdikten sonra onun ayarlamalarını yapmak zorundasınız. Tabiki her sunucunun kendine has ayarları olacaktır. Daha sonra uygulamanızı bu web server’a deploy edeceksiniz. Deploy’dan kastım, dosyalarınızı özel bir klasöre kopyalar veya upload edersiniz. Daha sonra web sunucunuzu başlatırsınız.

Spring Boot ise “Just Run” üzerine kurulmuştur. Siz uygulamanızı paketler ve aşağıdaki gibi bir komutla sadece çalıştırırsınız, o kendi işini bilir : )

java -jar uygulamam.jar

  1. İnatçıdır (Opinionated)

Spring Boot, bazı işleri yapmak için kendi bildiği yolu uygular. Bu kulağa kötü birşey gibi gelsede ön yargılı olmayın. Çünkü java’da uygulama geliştirken bir ton seçeneğimiz oluyor. Web Frameworkler, Logloma kütüphaneleri, Koleksiyon Kütüphaneleri. Eğer yeniysek bunlardan hangisi seçeceğimiz konusunda sıkıntılar yaşacağızdır. Spring Boot bizi bu dertten kurtararak sadece işimize odaklanmamızı sağlayacaktır.

Eğer bir örnekle denemek isterseniz http://start.spring.io  adresini ziyaret ederek buradan projenizi oluşturabilirsiniz. basitçe neye ihtiyacanız olduğunu söylersiniz o da size en uygun seçeneklerle projenizi oluşturur.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir