Spring Boot - Starters



Overview

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:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
   <version>2.0.4.RELEASE</version>
</dependency>

Spring Boot Starter Parent

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.
Advertisements