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