스프링 부트(Spring Boot) 소개
https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/getting-started-introducing-spring-boot.html
스프링 부트에 대한 소개가 위 링크에 나와있다.
=> 제품수준의 스프링 기반의 애플리케이션을 빠르고 쉽게 만들 수 있게 제공하는 것이 스프링 부트이다.
(Spring Boot makes it easy to create stand-alone(독립적으로), production-grade Spring-based Applications that you can run.)
특징(primary goals 이라고 표현되어 있음)
- Spring 개발을 빠르고 광범위하게 사용할 수 있게 제공한다.
- 이미 컨벤션으로 정의되어 있는 기능을 제공하지만, 요구사항에 맞게 쉽고 빠르게 커스터마이징이 가능하다.
- 공통적인 다양한 non-functional(비즈니스로직이 아닌)한 기능(feature)들을 제공한다. (embedded servers, security ...)
- code generation을 사용하지 않으며, XML 설정이 필요 없다.
=> 여기서 code generation은 뭘 뜻 하는지 잘 모르겠다. (아시는분 댓글좀..)
스프링 부트는 jdk8버전 이상을 사용해야 한다.
스프링 부트 빠르게 시작하기(Spring Boot quick start)
Intellij 기반으로 설명한다. (이클립스도 dependency만 추가하면 똑같다.)
일단 Intellij를 실행시킨 후, Create New Project를 클릭한다.
Intellij Ultimate 버전이라면, Spring Initializr를 활용하여 쉽게 Spring Boot를 만들 수 있지만, 없으신 분을 위해 Maven 프로젝트로 생성한다.
groupid, artifactid를 설정 후, pom.xml을 연다.
이제 spring boot에 필요한 dependency를 추가할건데, 아래의 링크를 참고하면 좋다.
https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/
Spring Boot Reference Guide이며,
Getting Started > 10. Installing Spring Boot > 10.1 Installation Instructions for the Java Developer > 10.1.1 Maven Installation
pom.xml에 아래와 같이 parent를 추가한다.(부모 프로젝트를 지정, maven 계층 구조 이용)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
dependency와 build plugin을 설정한다.
<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>
아래와 같이 class를 하나 생성한다. (class명은 마음대로 해도 된다.)
생성한 클래스에 아래와 같은 Java code를 넣는다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args); // 이 class와 arguments를 넘겨준다.
}
}
이렇게 하면 SpringBoot가 실행될 준비가 끝난다.
그 후 실행을 하게되면, 서버가 뜨는것을 볼 수 있다.(생각보다 간단..)
맨 위 SpringBoot 소개글을 보면, SpringBoot는 jar로 실행이 된다고 한다.
테스트 해보자.
Terminal에 들어가서 mvn package
를 하면, jar 파일로 묶이는 것을 볼 수 있다.
그리고 이 jar파일을 실행해보자.java -jar target/spring-boot-started-1.9.SNAPSHOT.jar
실행이되는 것을 볼 수 있다.
신기하지 않은가??
그렇다면 우리는 여기서 궁금점을 갖게된다.
- Spring MVC가 실행되려면 여러 dependency들이 필요한데, 우리는 pom.xml에 dependency를 하나만 넣었다. 저 하나의 dependency만으로 어떻게 실행이 됬을까?
- dispatcher-servlet 설정, listener의 context 설정, bean 관계 설정 파일들은 어디에 있을까?
- Java코드의 SpringApplication.run(..)을 하면 어떻게 동작하는 것일까?
나도 모른다.. 이제부터 공부해가면서 이해해보자..
'프로그래밍 노트 > SPRING BOOT' 카테고리의 다른 글
[Spring Boot] Servlet, Servlet-filter 설정 (1) | 2019.11.05 |
---|---|
[Spring Boot] 자동 설정 이해하기2 (0) | 2019.11.05 |
[Spring Boot] 스프링부트 테스트하기 (0) | 2019.09.16 |
[Spring Boot] 자동 설정 이해하기 @EnableAutoConfiguration (0) | 2019.07.11 |
[Spring Boot] 의존성 관리 (0) | 2019.07.11 |