13.5 Starters

starter 들은는 응용 프로그램에 포함 할 수있는 편리한 종속성 설명자 집합입니다. 샘플 코드를 통해 사용하고 종속성 설명자의 복사 - 붙여 넣기 작업을 수행하지 않고도 필요한 모든 Spring 및 관련 기술을 원스탑으로 얻을 수 있습니다. 예를 들어 데이터베이스 액세스를 위해 Spring과 JPA를 사용하려면 프로젝트에 spring-boot-starter-data-jpa 종속성을 포함시킵니다.

starter에는 프로젝트를 신속하게 가동하고 일관성 있고 지원되는 관리 전이 의존성 세트로 필요한 많은 의존성이 있습니다.

스프링부트에서 starter 란 의존성과 설정을 자동화 해주는 모듈!

예를 들어 spring-boot-starter-data-jpa의존성을 추가했을 때 발생하는 일

  • spring-aop, spring-jdbc 등의 의존성을 걸어준다.

  • 클래스패스를 뒤져서 어떤 데이터베이스를 사용하는 지 파악하고 자동으로 EntityManager를 구성해준다.

  • 해당 모듈들 설정에 필요한 properties 설정을 제공한다.

What’s in a name

모든 공식 starter는 비슷한 이름 지정 패턴을 따릅니다. spring-boot-starter-* , *는 특정 유형의 응용 프로그램입니다. 이 명명 구조는 starter를 찾아야 할 때 도움을 주기 위한 것입니다. 많은 IDE에서 Maven 통합을 통해 의존성을 이름으로 검색 할 수 있습니다. 예를 들어 적절한 Eclipse 또는 STS 플러그인이 설치된 경우 POM 편집기에서 ctrl-space를 누르고 전체 목록을 보려면 "spring-boot-starter"를 입력 할 수 있습니다.

"Creating Your Own Starter"섹션에서 설명했듯이 third party starter는 공식 Spring Boot 아티팩트 용으로 예약되어 있으므로 spring-boot로 시작하지 않아야합니다. 오히려 일반적으로 third-party starter는 프로젝트 이름으로 시작합니다. 예를 들어 thirdpartyproject라는 third-party starter 프로젝트는 일반적으로 thirdpartyproject-spring-boot-starter라는 이름을 갖습니다.

org.springframework.boot 그룹 아래에 Spring Boot가 제공하는 애플리케이션 스타터는 다음과 같습니다.

Table 13.1. Spring Boot application starters

Name

Description

Pom

spring-boot-starter

자동 구성 지원, 로깅, YAML(설정 파일)을 포함한 핵심 스타터

spring-boot-starter-activemq

아파치 ActiveMQ를 사용한 JMS (Java Message Service) 메세징을 위한 스타터

spring-boot-starter-amqp

스프링 AMQP와 Rabbit MQ를 위한 스타터

spring-boot-starter-aop

Spring AOP와 AspectJ을 이용한 관점지향 프로그래밍을 위한 스타터

spring-boot-starter-artemis

아파치 Artemis를 사용한 JMS 메세징을 위한 스타터

spring-boot-starter-batch

스프링 배치(대용량 데이터 처리를 지원)를 위한 스타터

spring-boot-starter-cache

스프링 프레임워크의 캐싱을 지원하기 위한 스타터

spring-boot-starter-cloud-connectors

Cloud Foundry나 Heroku와 같은 클라우드 플랫폼 서비스에 연결을 간단하게 해주는 스프링 클라우드 연결자 사용을 위한 스타터

spring-boot-starter-data-cassandra

카싼드라에서 배포한 데이터와 스프링 데이터 카산드라 사용을 위한 스타터

spring-boot-starter-data-cassandra-reactive

카싼드라에서 배포한 데이터와 스프링 데이터 카산드라 Reactive 사용을 위한 스타터

spring-boot-starter-data-couchbase

문서지향 데이터베이스인 Couchbase와 Spring Data Couchbase를 사용하기 위한 스타터

spring-boot-starter-data-couchbase-reactive

문서지향 데이터베이스인 Couchbase와 Spring Data Couchbase Reactive를 사용하기 위한 스타터

spring-boot-starter-data-elasticsearch

Elasticsearch 검색과 분석엔진과 Spring Data Elasticsearch 을 사용하기 위한 스타터

spring-boot-starter-data-jdbc

Spring Data JDBC 사용을 위한 starter

spring-boot-starter-data-jpa

Spring Data JPA와 하이버네이트(Hibernate)를 사용하기 위한 스타터

spring-boot-starter-data-ldap

Spring Data LDAP (Lightweight Directory Access Protocol)를 사용하기 위한 스타터

spring-boot-starter-data-mongodb

문서지향 데이터베이스인 몽고디비와 Spring Data MongoDB 사용을 위한 스타터

spring-boot-starter-data-mongodb-reactive

문서지향 데이터베이스인 몽고디비와 Spring Data MongoDB Reactive 사용을 위한 스타터

spring-boot-starter-data-neo4j

Neo4j 그래프 데이터베이서와 Spring Data Neo4j를 사용하기 위한 스타터

spring-boot-starter-data-redis

Spring Data Redis와 Lettuce client를 이용해 key-value 데이터 저장소인 Redis를 사용하기 위한 스타터

spring-boot-starter-data-redis-reactive

Spring Data Redis reactive와 Lettuce client를 이용해 key-value 데이터 저장소인 Redis를 사용하기 위한 스타터

spring-boot-starter-data-rest

Spring Data REST를 사용해 REST로 Spring Data 리포지토리들을 나타나도록 하기 위한 스타터

spring-boot-starter-data-solr

아파치 Solr 검색 플렛폼을 Spring Data Solr로 사용하기 위한 스타터

spring-boot-starter-freemarker

FreeMarker View를 이용해 MVC 웹 어플리케이션을 구축하기 위한 스타터

spring-boot-starter-groovy-templates

Spring MVC와 Spring HATEOAS를 이용해 하이퍼미디아 기반의 RESTful 웹어플리케이션 구축을 위한 스타터

spring-boot-starter-hateoas

Spring MVC와 Spring HATOAS를 이용한 하이퍼 미디어 기반의 RESTful 웹 어플리케이션 구축을위한 starter

spring-boot-starter-integration

스프링 통합에 사용되는 스타터

spring-boot-starter-jdbc

Tomcat JDBC 커텍션 풀을 이용해서 JDBC를 사용하기 위한 스타터

spring-boot-starter-jersey

JAX-RS와 Jersey를 사용해 RESTful 웹어플리케이션을 구축하기 위한 스타터. spring-boot-starter-web의 대체제

spring-boot-starter-jooq

JOOQ를 이용해 SQL 데이터베이스에 접근하기 위한 스타터. spring-boot-starter-data-jpaspring-boot-starter-jdbc의 대체제

spring-boot-starter-json

json을 읽고 쓰기 위한 스타터

spring-boot-starter-jta-atomikos

Atomikos를 이용해 JTA 트랜잭션 처리를 하기 위한 스타터

spring-boot-starter-jta-bitronix

Bitronix를 이용해 JTA 트랜잭션 처리를 하기 위한 스타터

spring-boot-starter-mail

Java Main과 스프링 프레임워크의 email sending 지원을 사용하기 위한 스타터

spring-boot-starter-mustache

Mustache View를 이용해 웹어플리케이션을 구축기 위한 스타터

spring-boot-starter-oauth2-client

Spring Security의 OAuth2 / OpenID Connect 클라이언트 기능을 사용하기위한 starter

spring-boot-starter-oauth2-resource-server

Spring Security의 OAuth2 리소스 서버 기능을 사용하기위한 스타터

spring-boot-starter-quartz

Quartz 스케줄러 사용을 위한 스타터

spring-boot-starter-security

Spring Security 사용을 위한 스타터

spring-boot-starter-test

JUnit, Hamcrest 및 Mockito를 포함한 라이브러리를 사용하여 Spring Boot 애플리케이션을 테스트하기위한 스타터

spring-boot-starter-thymeleaf

Thymeleaf 뷰를 사용하여 MVC 웹 응용 프로그램을 작성하기위한 스타터

spring-boot-starter-validation

Hibernate Validator와 함께 Java Bean 유효성 검사를 사용하기위한 스타터

spring-boot-starter-web

스프링 MVC를 이용해 RESTful을 포함한 웹 어플리케이션을 구축하기 위한 스타터. 기본 내장 컨테이너로 톰켓을 사용한다.

spring-boot-starter-web-services

스프링 웹서비스를 사용하기 위한 스타터

spring-boot-starter-webflux

스프링 프레임워크의 반응형 웹 지원(Reactive Web support)을 이용해 WebFlux 어플리케이션을 구축하기 위한 스타터

spring-boot-starter-websocket

스프링 프레임워크의 웹소켓 지원(WebSocket supoort)를 이용해 WebSocket 어블리케이션을 구축하기 위한 스타터

애플리케이션 starter 외에 다음의 starter를 사용하여 production ready 기능을 추가 할 수 있습니다.

Table 13.2. Spring Boot production starters

Name

Description

Pom

spring-boot-starter-actuator

스프링 부트의 Actuator를 사용하기 위한 스타터. 스프링 부트의 Actuator는 어플리케이션 관리와 모니터링을 도와주는 생산 준비 기능을 제공한다.

마지막으로 스프링 부트는 당신이 특정 기술적 측면을 배제하거나 변경하고자 할때 사용할 수 있는 다음과 같은 스타터들을 포함하고 있다.

Table 13.3. Spring Boot technical starters

Name

Description

Pom

spring-boot-starter-jetty

내장 서블릿 컨테이너로 Jetty를 사용하기 위한 스타터. spring-boot-starter-tomcat를 대신한다.

spring-boot-starter-log4j2

로깅을 위해 Log4j2를 사용하기 위한 스타터. spring-boot-starter-logging을 대신한다.

spring-boot-starter-logging

로그백(Logback)을 이용한 로깅을 위한 스타터. 기본 로깅 스타터이다.

spring-boot-starter-reactor-netty

Reactor Netty를 내장된 반응형 HTTP 서버로 사용할 경우 이용하는 스타터.

spring-boot-starter-tomcat

내장형 서블릿 컨테이너로 톰켓을 사용할 경우를 위한 스타터. spring-boot-starter-web의 기본 서블릿 컨테이너 스타터이다.

spring-boot-starter-undertow

내장형 서블릿 컨테이너로 언더토우(Undertow)를 사용하기 위한 스타터. spring-boot-starter-tomcat의 대신한다.

커뮤니티가 기여한 다른 starter의 목록은 GitHub의 spring-boot-starters 모듈에있는 README file을 참조하십시오.

Last updated