Tuesday, December 2, 2014

Spring Boot ile Spring'e hızlı bir giriş

Merhaba,

Askerlik ve sonrasında iş temposu derken uzun zamandır birşeyler yazamadım. Bundan sonra daha tekrar öğrendiklerimi paylaşmayı düşünüyorum.

Spring, Spring Web MVC öğrenme sürecinde evde birşeyler denerken her defasında yeni bir spring projesi oluşturmak ve ayağa kaldırmak fazlasıyla zamanımı alıyordu. Bu durumu aşmak için Spring, Spring Web MVC, Hibernate ve basit bir önyüzden oluşan bir proje hazırlayıp bu proje üzerinde denemelerimi yapmaya başladım. http://spring.io adresinde gezerken Spring-Boot projesi ile karşılaştım. Spring-Boot projesi Spring konfigurasyonları ile uğraşmadan direk Spring ile geliştirme yapabilmemize imkan veren araçlar sunuyor.
Spring-Boot ile hızlıca bir proje oluşturup, RestController yazıp spring-boot içerisinde gelen tomcat'i çalıştırıp controller'ımızı test edelim.

Öncelikle bir maven projesi açarak başlıyoruz. pom.xml içerisine aşağıdaki dependency'leri ekliyoruz.


  org.springframework.boot
  spring-boot-starter-parent
  1.1.9.RELEASE
 
 
  
   org.springframework.boot
   spring-boot-starter-web
  
 

Şimdi bir Controller yazıyoruz.

package org.guneriu.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @EnableAutoConfiguration anotasyonu ile Spring proje için gerekli ayarları yapıyor.
 * spring-boot-starter-web dependency eklediğimiz için web projesi ayağa kaldırıyor.
 *
 */
@EnableAutoConfiguration
@RestController
public class HelloController {
 
 @RequestMapping("/")
 public String index() {
  return "Hello World";
 }
 
 @RequestMapping("/hello/{name}")
 public String greetings(@PathVariable String name) {
  return "Hello " + name;
 }

 public static void main(String[] args) throws Exception {
        SpringApplication.run(HelloController.class, args);
    }
 
}


HelloController sınıfını java uygulaması olarak çalıştırıyoruz. Konsol çıktısı uygulamamızın 8080 portunda çalıştığını söylüyor.





Spring-Boot'u çalıştırmanın başka yolları da var. Bu yazıda sadece "spring-boot-starter-web" starter pom kullandım. Her anlamda ihtiyacınızı karşılayacak starter pom'ları kullanabilirsiniz. Daha fazla bilgi için Spring-Boot Dökümanı'na göz atabilirsiniz.