13.5 Starters
Starters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop-shop for all the Spring and related technology that you need, without having to hunt through sample code and copy paste loads of dependency descriptors. For example, if you want to get started using Spring and JPA for database access, just include the spring-boot-starter-data-jpa
dependency in your project, and you are good to go.
The starters contain a lot of the dependencies that you need to get a project up and running quickly and with a consistent, supported set of managed transitive dependencies.
What’s in a name
All official starters follow a similar naming pattern; spring-boot-starter-*
, where *
is a particular type of application. This naming structure is intended to help when you need to find a starter. The Maven integration in many IDEs allow you to search dependencies by name. For example, with the appropriate Eclipse or STS plugin installed, you can simply hit ctrl-space
in the POM editor and type “spring-boot-starter” for a complete list.
As explained in the Creating your own starter section, third party starters should not start with spring-boot
as it is reserved for official Spring Boot artifacts. A third-party starter for acme
will be typically named acme-spring-boot-starter
.
The following application starters are provided by Spring Boot under the org.springframework.boot
group:
Table 13.1. Spring Boot application starters
Name | Description | Pom |
---|---|---|
spring-boot-starter-thymeleaf |
Starter for building MVC web applications using Thymeleaf views | Pom |
spring-boot-starter-ws |
Starter for using Spring Web Services. Deprecated as of 1.4 in favor of spring-boot-starter-web-services |
Pom |
spring-boot-starter-data-couchbase |
Starter for using Couchbase document-oriented database and Spring Data Couchbase | Pom |
spring-boot-starter-artemis |
Starter for JMS messaging using Apache Artemis | Pom |
spring-boot-starter-web-services |
Starter for using Spring Web Services | Pom |
spring-boot-starter-mail |
Starter for using Java Mail and Spring Framework’s email sending support | Pom |
spring-boot-starter-data-redis |
Starter for using Redis key-value data store with Spring Data Redis and the Jedis client | Pom |
spring-boot-starter-web |
Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container | Pom |
spring-boot-starter-data-gemfire |
Starter for using GemFire distributed data store and Spring Data GemFire | Pom |
spring-boot-starter-activemq |
Starter for JMS messaging using Apache ActiveMQ | Pom |
spring-boot-starter-data-elasticsearch |
Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch | Pom |
spring-boot-starter-integration |
Starter for using Spring Integration | Pom |
spring-boot-starter-test |
Starter for testing Spring Boot applications with libraries including JUnit, Hamcrest and Mockito | Pom |
spring-boot-starter-hornetq |
Starter for JMS messaging using HornetQ. Deprecated as of 1.4 in favor of spring-boot-starter-artemis |
Pom |
spring-boot-starter-jdbc |
Starter for using JDBC with the Tomcat JDBC connection pool | Pom |
spring-boot-starter-mobile |
Starter for building web applications using Spring Mobile | Pom |
spring-boot-starter-validation |
Starter for using Java Bean Validation with Hibernate Validator | Pom |
spring-boot-starter-hateoas |
Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS | Pom |
spring-boot-starter-jersey |
Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web |
Pom |
spring-boot-starter-data-neo4j |
Starter for using Neo4j graph database and Spring Data Neo4j | Pom |
spring-boot-starter-websocket |
Starter for building WebSocket applications using Spring Framework’s WebSocket support | Pom |
spring-boot-starter-aop |
Starter for aspect-oriented programming with Spring AOP and AspectJ | Pom |
spring-boot-starter-amqp |
Starter for using Spring AMQP and Rabbit MQ | Pom |
spring-boot-starter-data-cassandra |
Starter for using Cassandra distributed database and Spring Data Cassandra | Pom |
spring-boot-starter-social-facebook |
Starter for using Spring Social Facebook | Pom |
spring-boot-starter-jta-atomikos |
Starter for JTA transactions using Atomikos | Pom |
spring-boot-starter-security |
Starter for using Spring Security | Pom |
spring-boot-starter-mustache |
Starter for building MVC web applications using Mustache views | Pom |
spring-boot-starter-data-jpa |
Starter for using Spring Data JPA with Hibernate | Pom |
spring-boot-starter |
Core starter, including auto-configuration support, logging and YAML | Pom |
spring-boot-starter-velocity |
Starter for building MVC web applications using Velocity views. Deprecated since 1.4 | Pom |
spring-boot-starter-groovy-templates |
Starter for building MVC web applications using Groovy Templates views | Pom |
spring-boot-starter-freemarker |
Starter for building MVC web applications using FreeMarker views | Pom |
spring-boot-starter-batch |
Starter for using Spring Batch | Pom |
spring-boot-starter-redis |
Starter for using Redis key-value data store with Spring Data Redis and the Jedis client. Deprecated as of 1.4 in favor of spring-boot-starter-data-redis |
Pom |
spring-boot-starter-social-linkedin |
Stater for using Spring Social LinkedIn | Pom |
spring-boot-starter-cache |
Starter for using Spring Framework’s caching support | Pom |
spring-boot-starter-data-solr |
Starter for using the Apache Solr search platform with Spring Data Solr | Pom |
spring-boot-starter-data-mongodb |
Starter for using MongoDB document-oriented database and Spring Data MongoDB | Pom |
spring-boot-starter-jooq |
Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc |
Pom |
spring-boot-starter-jta-narayana |
Spring Boot Narayana JTA Starter | Pom |
spring-boot-starter-cloud-connectors |
Starter for using Spring Cloud Connectors which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku | Pom |
spring-boot-starter-jta-bitronix |
Starter for JTA transactions using Bitronix | Pom |
spring-boot-starter-social-twitter |
Starter for using Spring Social Twitter | Pom |
spring-boot-starter-data-rest |
Starter for exposing Spring Data repositories over REST using Spring Data REST | Pom |
In addition to the application starters, the following starters can be used to add production ready features:
Table 13.2. Spring Boot production starters
Name | Description | Pom |
---|---|---|
spring-boot-starter-actuator |
Starter for using Spring Boot’s Actuator which provides production ready features to help you monitor and manage your application | Pom |
spring-boot-starter-remote-shell |
Starter for using the CRaSH remote shell to monitor and manage your application over SSH | Pom |
Finally, Spring Boot also includes some starters that can be used if you want to exclude or swap specific technical facets:
Table 13.3. Spring Boot technical starters
Name | Description | Pom |
---|---|---|
spring-boot-starter-undertow |
Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat |
Pom |
spring-boot-starter-jetty |
Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat |
Pom |
spring-boot-starter-logging |
Starter for logging using Logback. Default logging starter | Pom |
spring-boot-starter-tomcat |
Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web |
Pom |
spring-boot-starter-log4j2 |
Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging |
Pom |
Tip | |
---|---|
For a list of additional community contributed starters, see the README file in the spring-boot-starters module on GitHub. |