Spring Boot 'u Neden Kullanmalıyız ??

Spring boot Java programlama dilinde geliştirilen bir frameworktür. Java dilinde microservice yazılmasına olanak sağlar.

Peki MicroService nedir ?
Çalışan programın ana işlemi üzerindeki yük bölünerek ayrı ayrı işlemlerde çalışmasına ve bu sayede daha performanslı servisler geliştirilebilmesine olanak tanıyan bir yazılım geliştirme mimarisidir. Birlikte çalışabilen, otonom/bağımsız olarak deploy edilebilen belli bir iş sorumluluğu yüklenmiş küçük iş servisleridir. Bu servisler bir biri ile network üzerinden konuşarak anlaşırlar ve bir çok avantajıda yanlarında getirirler. En büyük avantajlarından birisi bağımsız olarak deploy edilebilir olmalarıdır. Bununla birlikte bir çok farklı teknoloji ile birlikte çalışma fırsatı (technology agnostic) sunmaktadır.Özetle tek bir işi gerçekleştirmekten sorumlu servislerdir diyebiliriz .

Spring boot kullanarak daha az veritabanı kodu yazarak daha az vakit kaybı ile daha hızlı geliştirme yapabilirsiniz .Servis uçları için REST kullanımı sunar ve güçlü bir REST yapılandırmasına sahiptir. Birçok yapılandırma otomatik olarak yapılmış durumdadır.
Var olan anotasyonları kullanarak uygulama ve uygulama içi mimarilerde kolayca değişiklik yapabilirsiniz. Kendisine ait bir servlet container bulunur. Bu sayede servis uçlarına gelen istekleri alır işler ve ilgili komutlara yönlendirir.

Spring Boot Nasıl Çalışır ?

Spring uygulamanızın çalışması için temel 3 tane anotasyon bulunmaktadır .

  • @SpringBootApplication : Uygulamanın giriş metodunu belirtir
  • @EnableAutoConfiguration : Uygulama bağlılıkları (dependencies) içerisinde belirtilen yapılandırmaları otomatik olarak çalıştırır
  • @ComponentScan : Proje içerisinde tanımlanan bütün komponentleri tarar.

Spring Boot ve Dependency Injection

Öncelikle Dependency Injection kavramı öğrenmeliyiz .

Dependency Injection

Uygulama geliştirirken bir sınıfa ait özelliği başka sınıfta kullanmak istediğimizde new anahtar kelimesini kullanırız yada o bilgiyi nesneye atar ,diğer sınıfa yönlendiririz. Bu şekilde nesnelerin birbirleriyle ilişkili olduğu durumlarda eğer bu durum iyi yönetilmezse yada iyi tasarlanamazsa bu durum ilerde büyük sorunlara yol açabilir :)

Yaptığınız uygulamalar modüler ve geliştirmeye açık olmalıdır . Bunun içinde nesneler arası bağlar zayıf olmalıdır .Bir nesne veya sınıf üzerinde değişiklik yapıldığında sınıf ile ilişkili ya da o sınıfın nesnesini kullanan tüm diğer sınıflar ve modüller bu değişiklikten etkilenmemelidir. İşte tam bu noktada Dependency Injection devreye giriyor.
Dependency Injection Inversion of Control (Ioc) teoreminin özelleştirilmiş ve en çok kullanılan kısmıdır diyebiliriz. Özetle bir sınıfı bağımlılıklarından bağımsız hale getiren bir programlama tekniğidir.

Spring Ioc container görevini üstlenir ve uygulamalarımız için Dependency Injection desenini uygulayan bir yapıdır. Spring bize iki farklı Dependency Injection özelliği tanımlamaktadır.

  • Setter Injection :Metodlar üzerinden injection işlemi yapılmaktadır.
  • Constructor Injection :Yapılandırıcı metod üzerinden bağımlılıklarımızı yönetiriz.
    Böylece Spring bizden aldığı değerleri gerekli alanlara eşleştirerek yönetebilmeyi sağlamaktadır.

Spring Boot’un oluşturulma amacı uygulama yapılandırılmasının karmaşıklığını gidermektir .S

Peki Neden Kullanmalıyız ?

Spring Boot’un oluşturulma amacı uygulama yapılandırılmasının karmaşıklığını gidermektir.

Spring Boot kullanmanın bir çok artısı vardır .

  • Geliştiriciler, Jetty, Tomcat gibi Gömülü HTTP sunucularına kolayca erişebilir ve web uygulamalarını zahmetsizce kolayca test edebilir.
  • Kurulumu oldukça basittir .
  • Bu -> Link aracılığıyla istediğiniz dependency değerlerini atayabilir ve sonrasında ilgili projeyi zip olarak indirebilirsiniz.
  • Birtakım derleme araçları vardır. Bunlardan en tanındık olanı MAVEN repository örneğini verebiliriz. Bu tarz araçları kullanabilmek için bizlere bir plugin sağlar ve hızlı bir şekilde entegrasyon sürecini kendisi tamamlar.
  • XML yapılandırmasına gerek yoktur.
  • Otomatik yapılandırma gibi özelliklerle Spring Boot, sizi kodlama ve gereksiz yapılandırma zahmetinden kurtarır
  • Gömülü ve bellek içi veritabanlarıyla çok sorunsuz ve kolay bir şekilde çalışmayı sağlayan bir eklenti sağlar.
  • Bizim için bir proje taslağı oluşturur ve herhangi bir konfigürasyon problemi yaşamadan projemizi ayağa kaldırabiliriz.
    Spring Boot kullanmanın bir çok artısı vardır .
  • Geliştiriciler, Jetty, Tomcat gibi Gömülü HTTP sunucularına kolayca erişebilir ve web uygulamalarını zahmetsizce kolayca test edebilir.
Girl Eating Pizza

Java, yazılım uygulamalarının geliştirilmesinde yaygın olarak kullanılan popüler bir programlama dilidir. Java uygulamalarını geliştirirken göz önünde bulunduru

Girl Eating Pizza

SOLID , yazılım tasarımlarını daha anlaşılır, esnek, sağlam ve sürdürülebilir hale getirmeyi amaçlayan 5 tasarım ilkesinin kısaltmasıdır. Java'da kullanımı anlatacağım.