Spring Boot 개요

Spring Boot란?

  • Spring 프로젝트에서 제공하는 다양한 라이브러리와 프레임워크로 빨리게 사용할 수 있게 하는 프레임워크이다.
  • Dropwizard의 Spring 버전 같은 것이다.
  • 빌드하면 단일 jar 파일이 생긴다.
    • Web 어플리케이션의 경우, 내장 Tomcat을 시작 (Jetty와 Undertow로 전환 가능).
    • Web 응용 프로그램이 아니라 보통의 Java 프로그램으로도 동작하게 할 수 있다.
  • Maven이나 Gradle 같은 빌드 도구를 사용한다. (Ant로는 불가능하다)
  • 사용하려는 컨포넌트를 종속적으로 추가하면 결합에 필요한 설정이 자동으로 이루어진다.
  • 스프링 응용프로그램을 독립적으로 작성, 빌드, 실행할 수 있으며 Embedded Tomcat, jetty 사용 이 가능하므로 WAR 파일로 묶어서 배포할 필요가 없다.
  • Tomcat이나 Jetty가 내장되어 프로젝트를 .jar 파일 형태로 간단히 배포할 수 있다.
  • 복잡한 xml 설정을 간소화 하여 어노테이션 기반의 java config로 교체하여 쉬운 서버 설정이 가능하다.
  • Django 나 ruby on rails 처럼 빠르게 웹 프로젝트를 만들 수 있게 한다.

Spring Boot 자동 설정

  • @SpringBootApplication
    • @Configuration, @EnableAutoConfiguration 그리고 @ComponentScan을 디폴트로 함께 사용하겠다는 뜻이다.
  • @Configuration
    • 클래스 위에 선언 š- 클래스 내에 하나이상의 @Bean 메소드를 제공하고 스프링 컨테이너가 해당 Bean들을 생성/관리 하게 한다.
  • @EnableAutoConfiguration š - embedded Tomcat 서버 세팅, spring mvc의 DispatcherServlet 자동 등록 등 여러가지 기본 설정 작업을 해준다.
  • @ComponentScan
    • @Component@Service, @Repository, @Contoller가 부여된 class들을 자동으로 scan하여 Bean으로 등록 해준다.


최종 수정 : 2017-12-17