스프링은 라이브러리간의 의존성 관리와 버전충돌을 방지하기 위해 spring-boot-starter와 spring-boot-starter-parent를 제공한다.
위 두가지는 스프링부트를 사용하면서 자주 사용하게 되는 라이브러리간의 의존성, 버전 조합을 각각 테스트하여 공개되었다. 자주 사용되는 라이브러리를 통합하여 설정할 수 있게 해준다.
<dependencies>
...(생략)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
예를들어, 기존에 aspectJ를 이용한 AOP를 이용하고 싶으면 org.springframework:spring-aop 의존성과 org.aspectj:aspectjweaver 의존성을 추가해서 사용했었지만
스프링부트에서는 spring-boot-starter-aop 의존성만 추가하면 aspectJ를 사용하기 위한 모든 의존성 조합이 추가된다. 이렇게 되면 개발자가 관리해야할 의존성이 줄어들어 보다 효율적으로 일을 할 수 있다.
parent를 사용하지 않고, 의존성 관리를 하기위한 방법으로는 dependencyManagement를 사용할 수 있다. 이 태그 아래에 직접 dependency를 직접 추가할 수 있다.
이렇게되면 parent에 설정된 인코딩 정보나 자바정보, 플러그인설정 등도 함께 설정해주어야한다.