본문 바로가기

IT공부/스프링부트

스프링 부트 개요

스프링 부트 개요

스프링 부트란?

스프링 부트(Spring Boot)

  • 스프링 프레임워크의 메이븐은 XML 파일에 dependency 태그를 이용하여 의존 설정을 하면 자동으로 라이브러리를 설치하고 관리할 수 있었다. XML 파일에 여러가지 설정을 하는 것은 스프링의 단점이다. 
  • 메이븐의 라이브러리 자동 업데이트 기능을 이어받으면서 기존 스프링 프레임워크의 복잡한 설정 과정은 최대한 줄이면서 개발할 수 있음
  • 배포 또는 테스트 역시 스프링 프레임워크보다 쉽고 빠르게 할 수 있음

스프링 부트 특징

  • 스프링 부트는 스타트업에서 모바일과 연동할 때 많이 사용한다. 이유는 일반적인 응용 프로그램을 단독으로 실행하는 수준으로 스프링 애플리케이션을 구현할 수 있기 때문이다. 
  • 프로젝트 환경을 구축할 때 필요한 톰캣, Jetty, UnderFlow 같은 서버 외적인 툴이 내장되어 있어 따로 설치할 필요가 없음
  • XML 기반 설정이나 코드 없이 환경 설정을 자동화할 수 있음(그만큼 빨리 애플리케이션을 구현할 수 있다.)
  • 의존성 관리를 쉽게 자동으로 할 수 있음
  • 메이븐의 좋은 기능은 이어받고 기존에 사용한 기능이 불편하거나 복잡할 경우에는 쉽게 사용할 수 있도록 만든게 스프링 부트이다. 

스프링 부트 전용 STS 설치하기

1. https://spring.io로 접속한 후 맨 하단의 TOOLS를 클릭한다. 

아래와 같이 다운로드가 완료됬다. 파일이름이 길면 압축풀 때 오류가 날 수 있으니 이름을 수정하자.

이름 수정 후 더블클릭하여 압축을 푼위 아래 실행파일을 작업표시줄에 고정하고 더블클릭항 실행하자.

실행하면 워크스페이스 선택 창이 나오면 아래와 같이 지정한 후 Launch 버튼을 눌러 실행한다.

스프링 부트 프로젝트를 생성해보자.

아래와 같이 입력후 Next를 클릭한다.

프로젝트가 생성되면 아래 그림과 같이 src/main/resources 경로 밑에 application.properties 파일을 클릭한다.

아래와 같이 포트 번호를 8090으로 입력하고 세션 유효시간을 36분으로 한다.

프로젝트를 생성하면 아래와 같이 자동으로 클래스 파일이 생성된다.

 

Myboot01Application 클래스를 보자.

 

  1. package com.myboot01;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5.  
  6. @SpringBootApplication
  7. public class Myboot01Application {
  8.  
  9.            public static void main(String[] args) {
  10.                       SpringApplication.run(Myboot01Application.class, args);
  11.            }
  12.  
  13. }

스프링 부트는 일반 자바 어플리케이션을 개발하는 방식으로 웹 어플리케이션을 개발하자는 것이다. 라인 9를 보면 일반 자바 어플리케이션 처럼 main메소드가 프로그램의 시작점이다. 

 

ServletInitializer 클래스를 보자.

 

  1. package com.myboot01;
  2.  
  3. import org.springframework.boot.builder.SpringApplicationBuilder;
  4. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  5.  
  6. public class ServletInitializer extends SpringBootServletInitializer {
  7.  
  8.            @Override
  9.            protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  10.                       return application.sources(Myboot01Application.class);
  11.            }
  12.  
  13. }

라인 6을 보면 ServletInitializer 클래스는 SpringBootServletInitializer 클래스를 상속받고 있다. 스프링에서는 웹 어플리케이션을 생성하면 web.xml이 생성됬다. ServletInitializer는 web.xml을 없애주는 기능을 한다. 즉, myboot01 프로젝트는 web.xml에 설정을 할 필요가 없는 것이다. 

 

아래와 같이 DemoController 클래스를 생성하자.

DemoController 클래스를 아래와 같이 작성하자.

  1. package com.myboot01;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6.  
  7. @Controller
  8. public class DemoController {
  9.       
  10.        //@ResponseBody
  11.        //웹브라우저에 "Hello Boot!" 문자 그대로 출력한다.
  12.        @ResponseBody
  13.        @RequestMapping("/")
  14.        public String home() {
  15.                System.out.println("Hello Boot!!");
  16.                return "Hello Boot!";
  17.        }
  18.  
  19. }

 기존에는 톰캣에 등록해서 실행을 했지만 스프링 부트는 톰캣이 내장되어 제공되기 때문에 아래와 같이 실행한다.

로그를 보면 스프링 부트가 시작되었다고 나온다.

웹 브라우저에 요청하면 아래와 같이 Hello Boot!가 출력되는 것을 확인할 수 있다.