Spring Boot Nedir?

Resmi proje sayfasındaki tanıma göre Spring Boot bağımsız(stand-alone) Spring tabanlı uygulamalar geliştirmenizi kolaylaştırmaya yarar. Spring Boot‘u bu kadar popüler yapan şey ise otomatik konfigürasyon özelliği. Çok az Spring konfigürasyonu ile çoğu Spring Boot projesini hayata geçirebilirsiniz.

Spring Boot’un bazı temel özellikleri

  • Bağımsız(stand-alone) Spring uygulamaları oluşturabilmek.
  • Gömülü bir web sunucusu(Tomcat, Jetty, Undertow) ile gelmesi.
  • Build konfigürasyonunu kolaylaştırmak için sağladığı starter’lar.
  • Otomatik konfigürasyon.
  • Kod üretimi(code generation) ve XML konfigürasyona ihtiyaç duymaması.

Yukarıda kısaca Spring Boot‘dan bahsettik. Şimdi olabildiğince basit bir örnek yapalım.

Öncelikle start.spring.io adresine gidelim.

start.spring.io Pivotal’ın(Spting Framework’ü geliştiren firma) developerlara sağlamış olduğu istediğimiz bağımlılıkları seçip bir Spring Boot projesi oluşturabileceğimiz online bir araç.

Sağ tarafta bulunan Dependencies kısmına Web yazarak ilgili bağımlılığımızı seçip diğer her şeyi olduğu gibi bırakalım ve Generate Project butonuna tıklayalım. Spring İınitializr bizim için bir zip dosyası üretip indirecek.

Spring Initializr’ın bizim için ürettiği zip dosyasını çıkartın ve favori IDE’niz ile açın. Ben IDE olarak Intellij kullanıyorum. Projemiz klasik maven proje klasör yapısıyla ve DemoApplication.java sınıfıyla geliyor.

Uygulamayı bu haliyle çıkartıp tarayıcımızdan localhost:8080 adresine gidersek aşağıdaki sayfa ile karlılaşırız.

Her ne kadar bir hata sayfası görüyor olsak da aslında uygulamamız sorunsuz bir şekilde çalışıyor. Bu hatayı alıyor olmamızın sebebi uygulamanın ana dizinini karşılayacak — ki bu durumda localhost:8080 adresi oluyor- bir controller metodu yazmamış olmamız.

Hemen basit bir controller yazalım. Aşağıdaki gibi HomeController.java isminde bir dosya oluşturalım ve uygulamayı yeniden başlatalım.

Proje başladığında localhost:8080 adresine gidelim ve mutlu son 🙂

Kod içerisinde geçen @SpringBootApplication, @Controller, @RequestMapping, @ResponeBody gibi anotasyonların ve yukarıda bahsettiğim Spting Boot‘un bize sağladığı starterların detaylarına sonraki yazılarımda değineceğim.

Bir sonraki yazımda görüşmek üzere.

NOT: 14.01.2019 tarihinde kişisel sitemde yazdığım yazının Medium’a taşınmış halidir.