스프링부트는 복잡한 프로젝트 의존성을 '스타터(Starter)' 의존성 수십 개로 해결한다.
그저 프로젝트에 필요한 기능들을 빌드에 선언을 하기만 하면, 그에 필요한 개별 라이브러리들을
자동으로 추가해준다.
스타터 의존성을 사용안한다고 생각해보자. 그렇다면 스타터 의존성의 장점을 바로 알 수 있을 것이다.
스프링 부트 없이 빌드하려면 어떤 의존성을 추가해야 할까? 스프링 MVC를 지원하려면 어떤
의존성들이 필요할까? 어떤 버전을 사용해야 잘 호환이 될까?
이렇듯 이미 코드 첫줄을 작성하기도 전에 빌드 명세에 어떤 것을 추가하여 기능을 만들어야 할지
많은 고민해야 한다.
이러한 많은 고민 끝에 그레이들 빌드 명세에 다음 의존성을 추가했다고 가정해보자.
compile('org.springframework:spring-web:4.1.6.RELEASE')
compile('org.thymeleaf:thymeleaf-spring4:2.1.4.RELEASE')
compile('org.springframework.data:spring-data-jpa:1.8.0.RELEASE')
compile('org.hibernate:hibernate-entitymanager:jar:4.3.8.Final')
compile('com.h2database:h2:1.4.187')
이 의존성 목록은 문제가 없어 보이고, 잘 작동할 것 같다. 하지만 그것을 어떻게 알 수 있을까?
선택한 의존성 버전끼리 서로 잘 호환되는지 어떻게 장담할 수 있을까?
애플리케이션을 빌드하고 실행하기 전까지는 확실히 알 수 없을 것이다.
이제 스타터의존성을 사용해보자.
처음으로 돌아가서 무엇을 원하는지 생각해보자. 예를 들어 다음 네가지 기능을 빌드하려 한다.
- 웹 애플리케이션
- Thymeleaf 뷰
- 스프링 데이터 JPA로 데이터를 관계형 데이터베이스에 영속화
- 테스터
의존성을 추가할 때는 프로젝트를 초기화할 때 체크란을 선택하여 의존성을 추가할 수도 있고,
dependencies{
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-data-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-data-web')
스타터의 전이적 의존성 오버라이드
'Programming > Java & JSP & Spring' 카테고리의 다른 글
[Spring] 예외처리 (0) | 2017.08.12 |
---|---|
[SpringBoot] 프로퍼티 이용하기 (0) | 2017.08.08 |
[JPA] 특정 칼럼을 제외하고 INSERT, UPDATE하는 방법 (0) | 2017.08.01 |
[SpringBoot] JPA 언더바 자동변경 방지 (0) | 2017.08.01 |
[SpringBoot]프로퍼티 DB 설정 옵션 (0) | 2017.07.28 |