Spring Boot Starters

Spring Boot supports the number of “Starters” that make developer life easy so that more focus on functionality implementation instead of thing about dependencies and it’s version. If any starter is added then it will add all dependent jars in your classpath.

In our previous article, Spring Boot Maven Application has used two Spring Boot starters as given below:

spring-boot-starter-parent

It’s a special starter that inherits useful maven defaults. It also provides dependency management so that omit version tags for dependencies.


 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.21.RELEASE</version>
    </parent>

See Also: spring-boot-starter-parent in Detail.

spring-boot-starter-web

It’s add in the dependencies section to make application as a web which will add all required dependencies for a web application.


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

To get your application dependency list using command mvn dependency:tree which represents dependencies in the form of a tree. You can use the command as below:


mvn dependency:tree

Spring Boot Starters

Here is a list of Spring Boot Starters which used for adding specific features to your application.

Name Description
spring-boot-starter-parent Use for core starter, logging, YAML support, and auto-configuration.
spring-boot-starter-web Use for building web, RESTful, applications using Spring MVC. By default embedded tomcat container.
spring-boot-starter-aop Use for AOP with Spring AOP and AspectJ.
spring-boot-starter-data-jpa Use for Spring Data JPA with Hibernate.
spring-boot-starter-test Use to test application with libraries including JUnit, Mockito and Hamcrest.
spring-boot-starter-jdbc Use for JDBC with the Tomcat JDBC connection pool.
spring-boot-starter-thymeleaf Use to build MVC web applications using Thymeleaf views.
spring-boot-starter-data-couchbase Use for Couchbase document-oriented database and Spring Data Couchbase.
spring-boot-starter-artemis Use for JMS messaging using Apache Artemis.
spring-boot-starter-web-services Use for Spring Web Services.
spring-boot-starter-mail Use to support Java Mail and Spring Framework’s email sending.
spring-boot-starter-data-redis Use for Redis key-value data store with Spring Data Redis and the Jedis client.
spring-boot-starter-data-gemfire Use to GemFire distributed data store and Spring Data GemFire.
spring-boot-starter-activemq Use to JMS messaging using Apache ActiveMQ.
spring-boot-starter-data-elasticsearch Use to Elasticsearch search and analytics engine and Spring Data Elasticsearch.
spring-boot-starter-integration Use for Spring Integration.
spring-boot-starter-mobile Use for building web applications using Spring Mobile.
spring-boot-starter-validation Use for Java Bean Validation with Hibernate Validator.
spring-boot-starter-hateoas Use to build a hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS.
spring-boot-starter-jersey Use to build RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web.
spring-boot-starter-data-neo4j Use for the Neo4j graph database and Spring Data Neo4j.
spring-boot-starter-data-ldap Use for Spring Data LDAP.
spring-boot-starter-websocket Use for building WebSocket. applications using Spring Framework?s WebSocket support.
spring-boot-starter-amqp Use for Spring AMQP and Rabbit MQ.
spring-boot-starter-data-cassandra Use for Cassandra distributed database and Spring Data Cassandra.
spring-boot-starter-social-facebook Use for Spring Social Facebook.
spring-boot-starter-jta-atomikos Use for JTA transactions using Atomikos.
spring-boot-starter-security Use for Spring Security.
spring-boot-starter-mustache Use for building MVC web applications using Mustache views.
spring-boot-starter-groovy-templates Use for building MVC web applications using Groovy Templates’ views.
spring-boot-starter-freemarker Use to build MVC web applications by FreeMarker views.
spring-boot-starter-batch Use for Spring Batch.
spring-boot-starter-social-linkedin Use for Spring Social LinkedIn.
spring-boot-starter-cache Use for Spring Framework’s caching support.
spring-boot-starter-data-solr Use for the Apache Solr search platform with Spring Data Solr.
spring-boot-starter-data-mongodb Use for MongoDB document-oriented database and Spring Data MongoDB.
spring-boot-starter-jooq Use for jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc.
spring-boot-starter-jta-narayana Use for Spring Boot Narayana JTA Starter.
spring-boot-starter-cloud-connectors Use for Spring Cloud Connectors which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku.
spring-boot-starter-jta-bitronix Use for JTA transactions using Bitronix.
spring-boot-starter-social-twitter Use for Spring Social Twitter.
spring-boot-starter-data-rest Use for exposing Spring Data repositories over REST using Spring Data REST.

Spring Boot starters for Technical

Name Description
spring-boot-starter-tomcat Use for Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web.
spring-boot-starter-undertow Use for Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat.
spring-boot-starter-jetty Use for Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat.
spring-boot-starter-logging Use for logging using Logback. Default logging starter.
spring-boot-starter-log4j2 Use for Log4j2 for logging. An alternative to spring-boot-starter-logging.

Spring Boot starters for Production

Name Description
spring-boot-starter-actuator The actuator provides production-ready features for monitor, audit and manages your application.
spring-boot-starter-remote-shell CRaSH remote shell use to monitor and manage your application over SSH. Deprecated since 1.5.

2 thoughts on “Spring Boot Starters”