* 지금 까지 스프링 부트 프로젝트를 진행하면서 starter는 아무 생각 없이 gradle이나 maven에 의존성을 추가해줘야 한다길래 가져다 쓴 경우가 많았다.
이번장에서는 spring-boot-starter에 대해서 더 자세히 알아보고자 한다.
스타터 : 특정 목적을 달성하기 위한 의존성 그룹
1. 스타터의 명명 규칙.
spring-boot-starter-*
*에 해당 스타터명을 명시하면 된다.
ex)
2. 스타터 내부의 의존성 확인 방법
1) spring.io 가이드에서 Starters 카테고리.
2) IDE에서 직접 확인 ( 인텔리제이의 경우 외부 라이브러리 참고)
3. 스타터에 명시된 버전을 확인 하는 방법
[해당 링크 참조]
https://github.com/spring-projects/spring-boot/
지금까지 내가 사용해왔던 starter 의존성들은 개발자가 신경쓰지 않아도 호환 버전이 되어왔던 것이다. (스프링부트👍👍👍👍)
하지만 버전에 따라 기존의 API 지원 형식이나 서로 의존되는 정보가 달라지는 경우도 있기 때문에 자신이 사용하는 라이브러리 버전은 알고 있는 것이 좋다.
4. 자주 사용하는 스타터를 살펴보도록 하자
- spring-boot-starter : 스프링 부트의 코어. auto-configuration,logging, yaml 제공
- spring-boot-starter-aop : 관점 지향 프로그래밍(AOP)을 위한 스타터 (AOP의 관해서는 따로 포스팅을 할 예정이다.)
- spring-boot-starter-batch : 스프링 배치를 사용하는데 필요한 스타터
- spring-boot-starter-data-jpa: 스프링 데이터 JPA와 하이버네이트를 사용하는 데 필요한 스타터
- spring-boot-starter-data-redis : 메모리 저장 방식의 저장소인 레디스와 자바에서 쉽게 레디스를 사용하게끔 도와주는 제디스 설정 자동화 스타터
- spring-boot-starter-data-rest : 스프링 데이터 저장소 방식에 맞춘 REST API를 제공하는 데 사용하는 스타터
- spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진을 사용하는 데 필요한 스타터
- spring-boot-starter-jdbc : 톰캣 JDBC 커넥션 풀에 사용하는 스타터
- spring-boot-starter-securiy : 각종 보안에 사용하는 스프링 시큐리티 스타터
- spring-boot-starter-oauth2 : Oauth2 인증에 사용하는 스타터
- spring-boot-starter-validation : 자바 빈 검증에 사용하는 스타터
- spring-boot-starter-web : 웹을 만드는 데 사용하는 스타터(스프링 MVC, REST형, 임베디드 톰캣, 기타 라이브러리 포함)
스타터가 무엇을 의미하는지, 어떤 버전을 쓰고 있는지 알고 사용하는 것이 훌륭한 개발자라고 생각한다.
참고 도서 : 처음 배우는 스프링부트 2