Starters
Starters Maven/Gradle dependencies ka CURATED SET hain — spring-boot-starter-web ek dependency add karne se, Spring MVC, embedded Tomcat, Jackson (JSON serialization) — SAB, TESTED aur COMPATIBLE versions mein, mil jaate hain. Manually har library ka VERSION MATCH karna ek NIGHTMARE hai — starters ye problem SOLVE karte hain.
Common starters: starter-web (REST APIs), starter-data-jpa (database), starter-security (authentication), starter-test (JUnit/Mockito/AssertJ), starter-validation (@Valid input validation), starter-actuator (production monitoring endpoints).
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>- Starter = related, VERSION-COMPATIBLE dependencies ka bundle
- Version compatibility manually manage karne ki zaroorat NAHI
- Naming pattern: spring-boot-starter-{feature}
Ek "starter" khud koi code NAHI hoti — ye sirf ek POM file hai jo RELATED, COMPATIBLE dependencies ka GROUP define karti hai. spring-boot-starter-web mein Spring MVC, embedded Tomcat, Jackson (JSON), aur validation library — sab EK SAATH, TESTED versions ke saath aate hain.
spring-boot-starter-web (REST APIs), spring-boot-starter-data-jpa (database/ORM), spring-boot-starter-security (auth), spring-boot-starter-test (JUnit + Mockito), spring-boot-starter-validation (@Valid input validation), spring-boot-starter-actuator (monitoring endpoints).
- starter-web = REST APIs, embedded Tomcat
- starter-data-jpa = database access via JPA/Hibernate
- starter-security = authentication/authorization
- starter-test = testing tools bundle