좋은 프로그램은 마음의 여유에서 나온다.

스프링 부트 시작하기. 헬로우월드 - 1 본문

프로그래밍/Spring

스프링 부트 시작하기. 헬로우월드 - 1

좋은데이 2016. 8. 11. 11:11

스프링 부트

  • 스프링 부트는 stand-alone, 그래들 기반 제품을 쉽게 만들 수 있게 해줌. just run!
  • 최소한의 몸부림으로 시작할 수 있고, 대부분의 스프링 부트 앱은 최소의 스프링 설정을 요구한다.
  • 자바 애플리케이션으로 만들어 java -jar로 실행하거나 war로 만들어서 실행
  • 코드 생성이나 XML 설정 생성이 필요 없음

소스코드


자바 1.7이상 설치


$java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)


그래들 1.12 이상 설치


$gradle -v
------------------------------------------------------------
Gradle 2.9
------------------------------------------------------------

Build time:   2015-11-17 07:02:17 UTC
Build number: none
Revision:     b463d7980c40d44c4657dc80025275b84a29e31f

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.8.0_11 (Oracle Corporation 25.11-b03)
OS:           Mac OS X 10.11.6 x86_64


IDE는 아무거나

여기서는 IntelliJ 15이용


1. 인텔리제이로 그래들 자바 프로젝트 생성하기


인텔리제이 실행후 Create New Project 선택.




그룹Id와 아티팩트Id도 넣어주고 버전도 입력해줌




설정도 만져주고(기본값은 Use auto-import가 체크 해제되어 있음.)



저장 디렉토리를 선택해주고 Finish버튼을 누르면 완료.



아래 그림과 같이 그래들 파일들과 프로젝트가 생성됨.

수동으로 그래들 프로젝트를 만들려면


$gradle init




메이븐 구조의 디렉토리를 만들어 준다.


src/main/java

src/main/resource

src/test/java

src/test/resource




디렉토리는 src를 만든후 main을 만들고 java를 만드는 방식으로 한개씩 만들어야 자바로 인텔리제이가 인식해 준다. 아래처럼 한번에 입력하면 인식 안함..




2. 스프링 부트 디펜던시 설정하기

참고 : http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-gradle-installation


기본으로 생성된 build.gradle 파일을 열면 아래와 같은 화면이 나옴



위에 참고에 있는 내용을 복붙해서 약간만 수정하면 아래와 같은 그림이 나옴.

sourceCompatibility, targetCompatibility는 자바 버전을 설정해주는 부분


스프링 부트 그래들 플러그인을 사용하고 

스프링 부트의 버전은 1.4.0.RELEASE 버전이다.


메이븐 레파지토리로 repo.spring.io/snapshot와 repo.spring.io/milestone 을 설정해 줌


기본 디펜던시로 spring-boot-starter-web 을 추가함



group 'com.tistory.lky1001'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        jcenter()
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

sourceCompatibility = 1.8
targetCompatibility = 1.8

jar {
    baseName = 'springboottutorial'
    version =  '1.0-SNAPSHOT'
}

repositories {
    jcenter()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}



인텔리제이 오른쪽에 Gradle 탭의 새로고침을 눌러서 디펜던시들을 다운받아 줍니다.





이제 웹 서버를 만들 준비가 다 되었으니 헬로우 월드를 띄울 클래스를 만들어 봄.


디렉토리를 만들때와 마찬가지로 패키지 구조와 자바 클래스를 생성함.




소스 코드 작성 : http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-first-application-code




package com.tistory.lky1001.springboottutorial;

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 lee on 2016. 8. 9..
 */
@RestController
@EnableAutoConfiguration
public class Application {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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


끝났습니다.


인텔리제이의 Run Configuration을 이용, jar로 묶어서 java로 실행,  그래들을 task를 이용해 실행할 수 있습니다.


1. 그래들 task (spring-boot-gradle-plugin 추가해야 함)


$gradle bootRun


2. jar로 빌드해기

$ gradle build     // ---> build/libs에 만들어짐.
$java -jar build/libs/springboottutorial-1.0-SNAPSHOT.jar


3. 인텔리제이에서 실행


인텔리제이 우측 상단의 세모 왼쪽에 버튼을 눌러 Edit Configurations 클릭


새로 뜨는 창에서 좌측 상단의 + 를 눌러 Application 추가




Main class에 패키지를 포함한 main이 있는 클래스명을 적어줌. 입력란 오른쪽에 버튼을 누르면 선택창이 나옴




이제 완료후 시작 버튼을 눌러 웹 서버를 실행. 임베디드 톰캣으로 실행됨.





위와 같은 화면이 나오면 성공 웹브라우저를 켜고 localhost:8080/ 로 접속하면 헬로우 월드가 출력 됨.


/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.0.RELEASE)

.....
....
2016-08-10 18:57:51.597  INFO 12070 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2016-08-10 18:57:51.608  INFO 12070 --- [           main] c.t.l.springboottutorial.Application     : Started Application in 5.86 seconds (JVM running for 6.889)



자세한 설명은 다음 포스팅에서..



Comments