Spring Boot Web 어플리케이션 기동

Web 어플리케이션 기동

여기서는 Spring Boot - Hello World을 수정하도록 하겠다.

Web 어플리케이션에 대한 의존성 변경

build.gradle

dependencies {
-   compile 'org.springframework.boot:spring-boot-starter'
+   compile 'org.springframework.boot:spring-boot-starter-web'
}

Web 어플리케이션을 만드는 경우는 spring-boot-starter-web 모듈을 사용한다.
기본적으로 Spring MVC를 사용하여 Web 응용 프로그램을 만들게 된다.

기동 방법 변경

서버 시작 후 컨테이너가 종료 해 버리므로 try-with-resources 문장은 사용하지 않도록 변경한다.

src/main/java/sample/springboot/Main.java

package sample.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Main {

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

Spring MVC 컨트롤러 클래스

Web API의 진입 점(Entry point)이 되는 클래스를 만드는 경우 @RestController을 클래스에 부여한다.
Web API 대신 MVC에서 C가 되는 컨트롤러 원한다면 @Controller 어노테이션을 부여한다.
@RequestMapping에서 경로 및 HTTP 메소드의 매핑을 한다 (대략 JAX-RS와 같은 분위기).

src/main/java/sample/springboot/web/HelloController.java

package sample.springboot.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping(method=RequestMethod.GET)
    public String hello() {
        return "Hello Spring MVC";
    }
}

어플리케이션 실행

Gradle로 실행

$ gradle bootRun
(생략)
> :bootRun

curl으로 테스트하기

$ curl http://localhost:8080/hello
Hello Spring MVC

소스 코드