Spring Boot starters are a set of predefined dependency descriptors which we can include in our Spring Boot project. Each starter focuses on a specific area of functionality (e.g., web, data, security, testing) and provides a curated set of related dependencies. By adding a starter to your project, you automatically get all the required libraries without having to hunt through documentation or sample code. To use a starter, simply add its corresponding dependency to your projects build configuration (Maven or Gradle). For example, in your project's POM.xml (Maven configuration file), you add a starter like:
Thespring-boot-starter-parentis a project starter provided by Spring Boot. Its primary purpose is to offer default configurations for your application and set up a complete dependency tree. When you use it as the parent in your project'spom.xml, you inherit a wealth of useful features.
Once youve declared the starter parent, you can pull any dependency from it directly. For example, if youre building a web project, addspring-boot-starter-webwithout specifying the version.
Some useful Spring Boot starters
Core Starters
Sr.No.
Name
Description
1
spring-boot-starter
It is used for core starter, including auto-configuration support, logging, and YAML.
2
spring-boot-starter-parent
It provides default configurations for the application. Once you include this in your POM.xml, you don't need to specify the version number of an artifact
WEB/MVC Starters
Sr.No.
Name
Description
1
spring-boot-starter-tomcat
It is used for Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web.
2
spring-boot-starter-undertow
It is used for Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat.
3
spring-boot-starter-jetty
It is used for Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat.
4
spring-boot-starter-thymeleaf
It is used to build MVC web applications using Thymeleaf views.
5
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.
6
spring-boot-starter-web-services
It is used for Spring Web Services.
7
spring-boot-starter-jersey
It is used to build RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web.
8
spring-boot-starter-websocket
It is used for building the WebSocket applications. It uses Spring Framework's WebSocket support.
9
spring-boot-starter-mustache
It is used for building MVC web applications using Mustache views.
10
spring-boot-starter-groovy-templates
It is used for building MVC web applications using Groovy Template views.
11
spring-boot-starter-freemarker
It is used for building MVC web applications using FreeMarker views.
Data Starters
Sr.No.
Name
Description
1
spring-boot-starter-data-couchbase
It is used for the Couchbase document-oriented database and Spring Data Couchbase.
2
spring-boot-starter-data-gemfire
It is used to GemFire distributed data store and Spring Data GemFire.
3
spring-boot-starter-data-cassandra
It is used for Cassandra distributed database and Spring Data Cassandra.
4
spring-boot-starter-data-redis
It is used for Redis key-value data store with Spring Data Redis and the Jedis client.
5
spring-boot-starter-data-jpa
It is used for Spring Data JPA with Hibernate.
6
spring-boot-starter-data-neo4j
It is used for the Neo4j graph database and Spring Data Neo4j.
7
spring-boot-starter-data-ldap
It is used for Spring Data LDAP.
8
spring-boot-starter-data-elasticsearch
It is used in Elasticsearch search and analytics engine and Spring Data Elasticsearch.
9
spring-boot-starter-data-solr
It is used for the Apache Solr search platform with Spring Data Solr.
10
spring-boot-starter-data-mongodb
It is used for MongoDB document-oriented database and Spring Data MongoDB.
11
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.
12
spring-boot-starter-data-rest
It is used for exposing Spring Data repositories over REST using Spring Data REST.
JMS Starters
Sr.No.
Name
Description
1
spring-boot-starter-artemis
It is used for JMS messaging using Apache Artemis.
2
spring-boot-starter-amqp
It is used for Spring AMQP and Rabbit MQ.
3
spring-boot-starter-activemq
It is used in JMS messaging using Apache ActiveMQ.
AOP Starters
Sr.No.
Name
Description
1
spring-boot-starter-aop
It is used for aspect-oriented programming with Spring AOP and AspectJ.
2
spring-boot-starter-jta-atomikos
It is used for JTA transactions using Atomikos.
JTA Starters
Sr.No.
Name
Description
1
spring-boot-starter-jta-narayana
It is used for Spring Boot Narayana JTA Starter.
2
spring-boot-starter-jta-bitronix
It is used for JTA transactions using Bitronix.
Integration Starters
Sr.No.
Name
Description
1
spring-boot-starter-integration
It is used for Spring Integration.
Logging Starters
Sr.No.
Name
Description
1
spring-boot-starter-logging
It is used for logging using Logback. Default logging starter.
2
spring-boot-starter-log4j2
It is used for Log4j2 for logging. An alternative to spring-boot-starter-logging.
Miscellaneous Starters
Sr.No.
Name
Description
1
spring-boot-starter-mail
It is used to support Java Mail and Spring Framework's email sending.
2
spring-boot-starter-social-facebook
It is used for Spring Social Media Facebook.
3
spring-boot-starter-social-linkedin
It is used for Spring Social Media LinkedIn.
4
spring-boot-starter-social-twitter
It is used for Spring Social Media Twitter.
5
spring-boot-starter-batch
It is used for Spring Batch.
6
spring-boot-starter-cache
It is used for Spring Framework's caching support.
7
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.
8
spring-boot-starter-security
It is used for Spring Security.
9
spring-boot-starter-actuator
It is used for Spring Boot's Actuator that provides production-ready features to help you monitor and manage your application.