Starters

Basic Spring
≈ 2 min read

Dependencies in groups instead of one by one

A typical application rarely needs just one library. For example, a web application needs Spring MVC, JSON conversion, logging, and other related components. A starter is a ready-made dependency set for a particular task.

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

Instead of selecting every library manually, we add a starter and receive a compatible set of components. This reduces the number of decisions required when creating a project and makes the build easier to read: the dependency name immediately shows which capability it is meant for.

Versions are coordinated centrally

Spring Boot manages the versions of many libraries in its ecosystem. That is why a regular Boot project often does not need to specify a version manually for dependencies managed by Boot. This helps avoid situations where individual libraries are technically added but do not work well together.

A starter does not “enable a feature” by itself. Its primary role is to add dependencies. How the presence of those libraries affects the application is connected to the auto-configuration mechanism, which we will cover next.