Spring Boot Starters – Eases dependency management
Handling dependency management is a difficult task for big projects. Spring Boot resolves this problem by providing a set of dependencies for developers convenience.
Spring Boot starters are templates that contain a collection of all the relevant transitive dependencies that are needed to start a particular functionality.
For example, if you want to use Spring and JPA for database access, it is sufficient if you include spring-boot-starter-data-jpa dependency in your project.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
spring-boot-starter-parent
The spring-boot-starter-parent dependency is the parent pom providing dependency and plugin management for Spring Boot-based applications. It contains the default versions of Java to use, the default versions of dependencies that Spring Boot uses, and the default configuration of the Maven plugins.
You do not need to provide version information into child dependencies. All versions are resolved in relation to version of parent starter (in our example it’s 2.2.2.RELEASE).
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
Spring Boot comes with over 50+ different starter modules, which provide ready-to-use integration libraries.
Starter | Description |
spring-boot-starter-thymeleaf | It is used to build MVC web applications using Thymeleaf views. |
spring-boot-starter-data-couchbase | It is used for the Couchbase document-oriented database and Spring Data Couchbase. |
spring-boot-starter-artemis | It is used for JMS messaging using Apache Artemis. |
spring-boot-starter-web-services | It is used for Spring Web Services. |
spring-boot-starter-mail | It is used to support Java Mail and Spring Framework’s email sending. |
spring-boot-starter-data-redis | It is used for Redis key-value data store with Spring Data Redis and the Jedis client. |
spring-boot-starter-web | It is used for building the web application, including RESTful applications using Spring MVC. It uses Tomcat as the default embedded container. |
spring-boot-starter-data-gemfire | It is used to GemFire distributed data store and Spring Data GemFire. |
spring-boot-starter-activemq | It is used in JMS messaging using Apache ActiveMQ. |
spring-boot-starter-data-elasticsearch | It is used in Elasticsearch search and analytics engine and Spring Data Elasticsearch. |
spring-boot-starter-integration | It is used for Spring Integration. |
spring-boot-starter-test | It is used to test Spring Boot applications with libraries, including JUnit, Hamcrest, and Mockito. |
spring-boot-starter-jdbc | It is used for JDBC with the Tomcat JDBC connection pool. |
spring-boot-starter-mobile | It is used for building web applications using Spring Mobile. |
spring-boot-starter-validation | It is used for Java Bean Validation with Hibernate Validator. |
spring-boot-starter-hateoas | It is used to build a hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS. |
spring-boot-starter-jersey | It is used to build RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web. |
spring-boot-starter-data-neo4j | It is used for the Neo4j graph database and Spring Data Neo4j. |
spring-boot-starter-data-ldap | It is used for Spring Data LDAP. |
spring-boot-starter-websocket | It is used for building the WebSocket applications. It uses Spring Framework’s WebSocket support. |
spring-boot-starter-aop | It is used for aspect-oriented programming with Spring AOP and AspectJ. |
spring-boot-starter-amqp | It is used for Spring AMQP and Rabbit MQ. |
spring-boot-starter-data-cassandra | It is used for Cassandra distributed database and Spring Data Cassandra. |
spring-boot-starter-social-facebook | It is used for Spring Social Facebook. |
spring-boot-starter-jta-atomikos | It is used for JTA transactions using Atomikos. |
spring-boot-starter-security | It is used for Spring Security. |
spring-boot-starter-mustache | It is used for building MVC web applications using Mustache views. |
spring-boot-starter-data-jpa | It is used for Spring Data JPA with Hibernate. |
spring-boot-starter | It is used for core starter, including auto-configuration support, logging, and YAML. |
spring-boot-starter-groovy-templates | It is used for building MVC web applications using Groovy Template views. |
spring-boot-starter-freemarker | It is used for building MVC web applications using FreeMarker views. |
spring-boot-starter-batch | It is used for Spring Batch. |
spring-boot-starter-social-linkedin | It is used for Spring Social LinkedIn. |
spring-boot-starter-cache | It is used for Spring Framework’s caching support. |
spring-boot-starter-data-solr | It is used for the Apache Solr search platform with Spring Data Solr. |
spring-boot-starter-data-mongodb | It is used for MongoDB document-oriented database and Spring Data MongoDB. |
spring-boot-starter-jooq | It is used for jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc. |
spring-boot-starter-jta-narayana | It is used for Spring Boot Narayana JTA Starter. |
spring-boot-starter-cloud-connectors | It is used for Spring Cloud Connectors that simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku. |
spring-boot-starter-jta-bitronix | It is used for JTA transactions using Bitronix. |
spring-boot-starter-social-twitter | It is used for Spring Social Twitter. |
spring-boot-starter-data-rest | It is used for exposing Spring Data repositories over REST using Spring Data REST. |