제2장 마이크로서비스를 위한 스프링 (1) - 마이크로서비스를 위한 스프링
마이크로서비스를 위한 스프링
스프링 부트 소개
- 애플리케이션을 java -jar 명령어로 실행한다.
- 표준 스프링 컨피규레이션보다 간단하게 실행 가능하다.
Spring starter
- 프로젝트 의존성에 포함될 수 있는 아티팩트(Artifact)
- 애플리케이션에 포함해야 하는 다른 의존성을 제공한다.
- Auto Configuration을 통해 기본 설정이 적용된다.
- 예를 들어 spring-boot-start-web을 포함하면 기본 웹 컨테이너를 내장한 애플리케이션으로 시작한다.
- 기본 웹 컨테이너는 Tomcat이고 8080포트를 사용한다.
- 포트는 속성 파일에 지정된 필드를 선언하여 쉽게 변경 가능하다.
- spring-boot-starter-jetty 또는 spring-boot-starter-undertow를 사용하여 웹 컨테이너를 변경 가능하다.
Spring-boot-starter-*
이름 |
설명 |
spring-boot-start |
자동 컨피규레이션 지원, 로깅, YAML을 포함하는 핵심 스타터 |
spring-boot-start web |
RESTful과 스프링 MVC를 포함하는 웹 애플리케이션 개발, 톰캣(Tomcat)을 기본 컨테이너로 내장 |
spring-boot-start web-jetty |
기본 내장 서블릿 컨테이너로 제티(Jetty)를 프로젝트에 포함 |
spring-boot-start web-undertow |
기본 내장 서블릿 컨테이너로 언더토우(Undertow)를 프로젝트에 포함 |
spring-boot-start web-tomcat |
내장 서블릿 컨테이너로 톰캣을 프로젝트에 포함. spring-boot-starter-web에 사용되는 기본 서블릿 컨테이너 |
spring-boot-start web-actuator |
애플리케이션 모니터링 및 관리 기능을 제공하는 스프링 부트 액추에이터 프로젝트를 포함 |
spring-boot-start web-jdbc |
Tomcat Connection Pool을 포함하는 스프링 JDBC를 포함. 특정 데이터베이스의 드라이버는 직접 제공해야 함 |
spring-boot-start web-data-jpa |
JPA 또는 Hibernate를 이용해 관계형 데이터베이스에 상호작용하기 위해 필요한 모든 아티팩트를 포함 |
spring-boot-start web-data-mongodb |
몽고디비와 상호작용하고 로컬 호스트의 몽고에 대한 클라이언트 연결을 초기화하기 위한 모든 아티팩트를 포함 |
spring-boot-start web-data-security |
프로젝트에 스프링 시큐리티를 포함하고 애플리케이션에 기본 시큐리티를 활성화 |
spring-boot-start web-data-test |
JUnit, Hamcrest, Mockito 와 같은 라이브러리를 활용한 단위 테스트의 생성을 허가 |
spring-boot-start web-data-amqp |
스프링 AMQP를 프로젝트에 추가하고 기본 AMQP 브로커로서 래빗엠큐를 시작 |
스프링 프레임워크의 표준 Configuration과 스프링 부트의 주요 차이점
- 스프링 부트를 사용하면 웹 컨테이너를 애플리케이션에 포함할 수 있다.
- 애플리케이션 속에 있는 웹 컨테이너
- 표준 스프링 Configuration 을 사용하면 애플리케이션을 WAR 형태로 웹 컨테이너에 배포한다.
- 웹 컨테이너에 속해 있는 애플리케이션(WAR)