Spring Boot 2.0.1 reference 정리 1
2018-04-10
1. Introducing Spring Boot
- 독립적이고 실제 제품 수준의 스프링 기반의 애플리케이션을 만들기 쉽게 해줌.
- 전통적인 war 배포 방식이나 java -jar를 이용하여 시작할 수 있는 java 응용 프로그램을 만들 수 있다
- 스프링 부트를 이용하면 기존 스프링을 사용할 때 보다 빠르게 시작할 수 있다
2. System Requirements
- 스프링부트 2.0.1은 자바 8이나 9, 스프링 프레임워크 5.5.5 이상을 요구한다. 빌드는 Maven 3.2+, Gradle 4를 지원한다.
2-1. Servlet Containers
- 지원하는 서블릿 버전은 3.1 이상이다.
- 서블릿 버전 3.1 이상을 지원하는 컨테이너라면 사용 가능하다.
Name | Servlet Version |
---|---|
Tomcat 8.5 | 3.1 |
Jetty 9.4 | 3.1 |
Undertow 1.4 | 3.1 |
3. Installation Spring Boot
- 스프링 부트는 자바 라이브러리 이므로 spring-boot-*.jar 파일 의존성만 추가하면 된다.
3-1. by Maven
- 스프링 부트 의존성은 org.springframework.boot를 groupId로 사용한다.
- Maven POM 파일은 spring-boot-starter-parent 프로젝트를 상속한다. (spring-boot-starter-parent의 pom.xml 파일을 상속받음)
- 또한 하나 이상의 starter 의존성을 선언한다.
<?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>2.0.1.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>
4. annotations
4-1. @RestConroller @RequestMapping Annotations
- @RestController는 stereotype-annotation 중의 하나
- stereo-annotation이란 spring의 @Component 어노테이션과 다르게 용도를 구별하기 위해 사용한다. (@Component, @Service, @Repository, @Controller)
- @RestController와 @RequestMapping은 스프링 부트가 아닌 스프링의 annotations이다.
4-2. @EnableAutoConfiguration
- 스프링 부트가 지원하는 annotation
- classpath에 기반해서 자동 설정을 지원한다.
- 즉 classpath에 tomcat-embeded-core.jar가 있으면 톰캣 서버가 세팅 되고, spring-webmvc.jar가 있으면 자동으로 web.xml을 생성하여 Dispatcher Servlet을 등록해준다.
4-3. the “main” Method
- run()을 호출함으로써 스프링 부트의 SpringApplication 클래스에 실행을 위임한다.
@SpringBootApplication
public class Example {
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
참고
백기선님 스프링부트 2.0 강의
Spring Boot Reference Guide
스프링 부트 @EnableAutoConfiguration