욱'S 노트

Spring Boot - 시작하기 본문

Programming/Spring Boot

Spring Boot - 시작하기

devsun 2015. 3. 23. 11:22

소개


스프링 부트는 stand-alone, production-gradle 스프링 기반 어플리케이션을 쉽게 만들 수 있게 도와준다. Spring 플랫폼과 third-party 라이브러리에 대한 독단적인 뷰를 가지고 있어서 논쟁없이 시작할 수 있다. 대부분의 Spring Boot 어플리케이션은 최소한의 스프링 설정을 필요로 한다. Spring Boot를 활용해 자바 어플리케이션을 생성하면 -jar 또는 전통적인 war 디플로이먼트를 이용해 시작할 수 있다. 또한 우리는 spring scripts를 실행할 수 있는 커맨드 라인 툴을 제공한다.


주요한 목적은 다음과 같다.

  • 모든 스프링 개발에 더 빠르고 널리 접근할 수 있는 getting started 경험을 제공한다.
  • 독단적인 out of box가 되자. 그러나 시작 요건의 변화에 대해서는 빨리 지원한다.
  • 프로젝트의 공통적으로 많은 클래스에 대한 비기능적인 범위를 제공한다. (예 - embedded servers, security, metrics, health checks, externalized configuration)
  • XML 설정이 필요없고 코드 생성이 필요없다. 


시스템 요구사항


1.2.2 RELEASE는 Java 7, Spring framework 4.1.3 이상을 지원한다. Maven(3.2+) 그리고 Gradle(1.12+)를 지원한다. Tomcat(7,8), Jetty(8,9), Undertow(1.1)의 내장 서블릿 컨테이너를 제공한다.


설치


일반적인 자바 라이브러리와 같은 방법으로 스프링 부트를 사용할 수 있다. 단순히 클래스패스에 적당한 spring-boot-*.jar를 포함하면 된다. 스프링 부트는 다른 특별한 툴과의 연계는 필요없다. 그러므로, 어떤 IDE나 텍스트 에디터에서 사용할 수 있다. 스프링 부트 어플리케이션에는 특별한 것이 없으므로 일반 자바 프로그램 처럼 실행하고 디버깅하면된다. 비록 Spring Boot jars를 복사하면 되지만 일반적으로 디펜던시 관리할 수 있는 빌드툴을 활용할 것을 추천한다.(Maven/Gradle)


메이븐에서 설치하기 


스프링 부트는 Apache Maven 3.2 이상에 적합하다. 만약 메이븐이 설치되어 있지 않다면 메이븐을 먼저 설치하도록 하자. 스프링 부트의 디펜던시는 org.springframework.boot 그룹ID를 사용한다. 일반적으로 spring-boot-starter-parent 프로젝트를 상속받으로써 하나 이상의 "Starter POMs"를 정의할 수 있다. Spring Boot는 또한 실행가능한 jar파일을 생성하기 위한 메이븐 플러그인도 제공한다.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.2.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

spring-boot-starter-parent는 Spring Boot를 사용하는 가장 좋은 방법이다. 때때로 다른 parent POM을 상속 받거나 부트의 디폴트 세팅이 맘에 들지 않을 수도 있다. 그럴경우 다음 섹션에서 방법을 알아보자.


Spring Boot CLI 설치하기


Spring Boot CLI는 Spring과 함께 빠르게 프로토타입으로 이용하기를 원할때 사용할 수 있는 커맨드 라인 툴이다. Groovy 스크립트를 실행하는 것을 지원한다. Spring Boot를 CLI를 사용할 필요가 없지만, Spring 어플리케이션을 사용하는 가장 빠른 방법이다.


스프링 소프트웨어 리파지토리에서 CLI 배포판을 다운로드 받자. spring-boot-cli-1.2.2.RELEASE-bin.zip이라는 이름으로 파일이 다운로드가 되는데 적절한 위치에 압축을 해제한다. 아래와 같은 파일을 app.groovy이름으로  만들자.


@RestController

class ThisWillActuallyRun {

    @RequestMapping("/")

    String home() {

"Hello World"

    } 

}


그리고 아래와 같은 명령을 수행해보자.


toddsonui-MacBook-Pro:bin devsun$ ./spring run app.groovy


브라우져로 locahost:8080로 접속한 후 결과를 확인해보자.


첫번째 어플리케이션 개발하기


간단한 Hello World 웹 어플리케이션을 자바로 개발해보자. 이 프로젝트의 빌드로 메이븐을 활용할 것이다.


POM  파일 만들기

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.2.RELEASE</version>
</parent>
<!-- Additional lines to be added here... -->
</project>

클래스패스 디펜던시 추가하기


Spring Boot는 클래스패스에 jar를 쉽게 추가하기 위해 다양한 "Starter POMs"를 제공한다. 우리는 샘플 어플리케이션은 이미 spring-boot-starter-parent를 사용하고 있다. spring-boot-starter-parent는 메이븐에서 디폴트로 사용하기 쉽게 제공된 특별한 starter이다. 다른 Starter POM은 특별한 타입의 어플리케이션을 개발할 때 단순한 디펜던시를 제공한다.  우리는 웹어플리케이션을 개발할 것이기 때문에 spring-boot-starter-web 디펜던시를 추가할 것이다. 

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

코드 작성하기

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

/**
* Created by devsun on 15. 3. 23..
*/
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello world";
}

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

코딩이 끝났으면, 어플리케이션을 실행하고 브라우져로 localhost:8080에 접속해보자.

'Programming > Spring Boot' 카테고리의 다른 글

Spring Boot - SpringApplication  (0) 2015.06.03
Spring Boot - 데이터베이스 연동  (0) 2015.04.09
Spring Boot - 프로젝트 구성하기  (0) 2015.03.23
Spring Boot - 빌드시스템  (0) 2015.03.23
Comments