Spring Boot provides a number of starters which allow us to add jars in the classpath. Spring Boot Starters are the dependency descriptors. Spring Boot built-in starters make development easier, rapid and easily maintainable.
Naming Pattern
In the Spring Boot framework, all the starters follow a similar naming pattern: spring-boot-starter-*, where * denotes a particular type of application.
Example, if we require to use Spring and JPA for database access, spring-boot-starter-data-jpa dependency in our pom.xml file of the project can be included.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
If we are developing REST API, spring-boot-starter-web dependency can be used.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
If gradle is being used as build tool, then following can be added to build.gradle file in the project.
dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' }
Below are the jars which are added to project’s classpath on adding “spring-boot-starter-data-jpa”
Spring Boot Starters can be broadly classified into three categories
- Production Starters
- Application Starters
- Technical Starters
Below is complete list of the starters available in above categories
Spring Boot Production Starters
Name |
Description |
spring-boot-starter-actuator | This provides production-ready features to help you monitor and manage your application. |
spring-boot-starter-remote-shell | This is used for the CRaSH remote shell to monitor and manage your application over SSH. Deprecated since 1.5. |
Spring Boot Application Starters
Name |
Description |
spring-boot-starter-thymeleaf | For building MVC web applications using Thymeleaf views. |
spring-boot-starter-data-couchbase | For the Couchbase document-oriented database and Spring Data Couchbase. |
spring-boot-starter-artemis | For JMS messaging using Apache Artemis. |
spring-boot-starter-web-services | For Spring Web Services. |
spring-boot-starter-mail | To support Java Mail and Spring Framework’s email sending. |
spring-boot-starter-data-redis | Used for Redis key-value data store with Spring Data Redis and the Jedis client. |
spring-boot-starter-web | For building the web application, including RESTful applications using Spring MVC. It uses Tomcat as the default embedded container. |
spring-boot-starter-data-gemfire | Used to GemFire distributed data store and Spring Data GemFire. |
spring-boot-starter-activemq | For JMS messaging using Apache ActiveMQ. |
spring-boot-starter-data-elasticsearch | For Elasticsearch search and analytics engine and Spring Data Elasticsearch. |
spring-boot-starter-integration | It is used for Spring Integration. |
spring-boot-starter-test | Used to test Spring Boot applications with libraries, including JUnit, Hamcrest, and Mockito. |
spring-boot-starter-jdbc | Used for JDBC with the Tomcat JDBC connection pool. |
spring-boot-starter-mobile | Used for building web applications using Spring Mobile. |
spring-boot-starter-validation | Used for Java Bean Validation with Hibernate Validator. |
spring-boot-starter-hateoas | Used to build a hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS. |
spring-boot-starter-jersey | Used to build RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web. |
spring-boot-starter-data-neo4j | Used for the Neo4j graph database and Spring Data Neo4j. |
spring-boot-starter-data-ldap | Used for Spring Data LDAP. |
spring-boot-starter-websocket | Used for building the WebSocket applications. It uses Spring Framework’s WebSocket support. |
spring-boot-starter-aop | For aspect-oriented programming with Spring AOP and AspectJ. |
spring-boot-starter-amqp | For Spring AMQP and Rabbit MQ. |
spring-boot-starter-data-cassandra | For Cassandra distributed database and Spring Data Cassandra. |
spring-boot-starter-social-facebook | For Spring Social Facebook. |
spring-boot-starter-jta-atomikos | 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 | Used for Spring Data JPA with Hibernate. |
spring-boot-starter | Used for core starter, including auto-configuration support, logging, and YAML. |
spring-boot-starter-groovy-templates | 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 | For Spring Batch. |
spring-boot-starter-social-linkedin | For Spring Social LinkedIn. |
spring-boot-starter-cache | 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 | 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 | 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 | For Spring Social Twitter. |
spring-boot-starter-data-rest | For exposing Spring Data repositories over REST using Spring Data REST. |
Spring Boot Technical Starters
Name | Description |
spring-boot-starter-undertow | Used for Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat. |
spring-boot-starter-jetty | Used for Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat. |
spring-boot-starter-logging | Used for logging using Logback. Default logging starter. |
spring-boot-starter-tomcat | Used for Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web. |
spring-boot-starter-log4j2 | Used for Log4j2 for logging. An alternative to spring-boot-starter-logging. |
Good write up, keep it up. It is very useful
Good one informative
Very impressive
Good write up, keep it up.