In the preceding section, we looked at the Spring Initializr tool. It is time to quickly look at the starters or dependencies supported by Spring Boot.
Dependency management becomes challenging as the project grows in complexity. It is recommended not to manage the dependencies manually for a complex project. Spring Boot starters fix a similar problem. Spring Boot starters is a set of dependency descriptors that can be included in Spring-powered applications using starter POMs. It eliminates the need to look for sample code and copy/paste lots of dependency descriptors for Spring and related libraries. As an example, if we want to develop an application using Spring and JPA, we can include the spring-boot-data-jpa-starter dependency in the project. spring-boot-data-jpa-starter is one of the starters. The starters follow uniform naming patterns, such as spring-boot-starter-*, where * denotes the type of application.
Here is a list of some Spring Boot application starters:
Name | Description |
spring-boot-starter | Core starter provides auto-configuration and logging support. |
spring-boot-starter-activemq | JMS messaging starter using Apache ActiveMQ. |
spring-boot-starter-amqp | Spring AMQP and Rabbit MQ starter. |
spring-boot-starter-aop | Spring AOP and AspectJ starter. |
spring-boot-starter-artemis | JMS messaging starter using Apache Artemis. |
spring-boot-starter-batch | Spring Batch starter. |
spring-boot-starter-cache | Spring Framework's caching support. |
spring-boot-starter-cloud-connectors | Starter providing support for simplified connections with cloud services using Spring Cloud Connectors in cloud platforms such as Cloud Foundry and Heroku. |
spring-boot-starter-data-elasticsearch | Starter with support for elasticsearch and analytics engine, and Spring Data Elasticsearch. |
spring-boot-starter-data-jpa | Spring Data JPA with Hibernate. |
spring-boot-starter-data-ldap | Spring Data LDAP. |
spring-boot-starter-data-mongodb | MongoDB document-oriented database and Spring Data MongoDB. |
spring-boot-starter-data-redis | Redis key-value data store with Spring Data Redis and the Lettuce client. |
spring-boot-starter-data-rest | Starter providing support for exposing Spring Data repositories over REST using Spring Data REST. |
spring-boot-starter-data-solr | Apache Solr search platform with Spring Data Solr. |
spring-boot-starter-freemarker | Starter supports building MVC web applications using the FreeMarker views. |
spring-boot-starter-groovy-templates | Starter supporting building MVC web applications using the Groovy templates views. |
spring-boot-starter-integration | Spring Integration. |
spring-boot-starter-jdbc | JDBC with the Tomcat JDBC connection pool. |
spring-boot-starter-jersey | Starter supporting building RESTful web applications using JAX-RS and Jersey. It is an alternative to spring-boot-starter-web starter. |
spring-boot-starter-json | Starter supporting JSON manipulation. |
spring-boot-starter-mail | Starter supporting the use of Java Mail and Spring Frameworkâs email-sending support. |
spring-boot-starter-quartz | Starter for using Spring Boot Quartz. |
spring-boot-starter-security | Spring Security starter. |
spring-boot-starter-test | Support for Spring Boot applications with libraries including JUnit, Hamcrest, and Mockito. |
spring-boot-starter-thymeleaf | Supports building MVC web applications using the Thymeleaf views. |
spring-boot-starter-validation | Starter supporting Java Bean Validation with Hibernate Validator. |
spring-boot-starter-web | Supports building web, including RESTful, applications using Spring MVC. It uses Tomcat as the default embedded container. |
spring-boot-starter-web-services | Supports use of Spring Web Services. |
spring-boot-starter-websocket | Supports building WebSocket applications using Spring Framework's WebSocket support. |
spring-boot-starter-actuator is a production starter for Spring Boot's Actuator tool, which provides support for production-ready features, such as application monitoring, health checks, logging, and beans.
The following list includes a few of the technical starters for Spring Boot:
Name | Description |
spring-boot-starter-jetty | Support for Jetty as the embedded servlet container. This is an alternative to spring-boot-starter-tomcat. |
spring-boot-starter-log4j2 | Starter supporting Log4j 2 for logging. This is an alternative to spring-boot-starter-logging. |
spring-boot-starter-logging | This is the default logging starter using logback. |
spring-boot-starter-tomcat | This is the default servlet container starter used for spring-boot-starter-web. It uses Tomcat as the embedded server. |
spring-boot-starter-undertow | This is an alternative to spring-boot-starter-tomcat starter. It uses Undertow as the embedded server. |
spring-boot-starter-cache | Spring Framework's caching support. |