Hey guys in this post, we will discuss about Spring boot starters and their dependencies list in detail.
What are Spring boot starters?
The spring boot starters provide the required dependencies needed for the build according to the type of project chosen. For example, a Web project has certain dependencies that may be included simply by adding the
Starters organize the dependencies under a named banner which makes the dependency specification small and neat. For example, rather than specifying all the dependent jars for, say, Hibernate Validator and Tomcat’s embedded expression language, we can simply add the
spring-boot-starter-validation starter. That’s all. All the required dependencies are automatically imported under that banner.
Types of Starters
This is the Core starter, including auto-configuration support, logging and YAML starter.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
There are many starters available, again it is divided into different categories. Following are the different categories and their dependencies
Google Cloud Platform
spring-cloud-gcp-starter: Contains auto-configuration support for every Spring Cloud GCP integration. Most of the auto-configuration code is only enabled if other dependencies are added to the classpath.
spring-cloud-gcp-starter-pubsub: Adds the GCP Support entry and all the required dependencies so that the Google Cloud Pub/Sub integration work out of the box.
spring-cloud-gcp-starter-storage: Adds the GCP Support entry and all the required dependencies so that the Google Cloud Storage integration work out of the box.
spring-boot-starter-batch: Batch applications with transactions, retry/skip and chunk based processing.
spring-boot-starter-validation: Bean Validation with Hibernate validator.
spring-boot-starter-mail: Send email using Java Mail and Spring Framework’s JavaMailSender.
spring-boot-starter-quartz: Schedule jobs using Quartz.
spring-boot-starter-cache: Provides cache-related operations, such as the ability to update the content of the cache, but does not provide the actual data store.
spring-boot-starter-integration: Adds support for Enterprise Integration Patterns. Enables lightweight messaging and supports integration with external systems via declarative adapters.
spring-boot-starter-amqp: Gives your applications a common platform to send and receive messages, and your messages a safe place to live until received.
spring-boot-starter-activemq: Spring JMS support with Apache ActiveMQ ‘Classic’.
spring-boot-starter-artemis: Spring JMS support with Apache ActiveMQ Artemis.
spring-boot-starter-websocket: Build WebSocket applications with SockJS and STOMP.
spring-boot-starter-rsocket: RSocket.io applications with Spring Messaging and Netty.
camel-spring-boot-starter: Apache Camel is an open source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.
solace-spring-boot-starter: Connect to a Solace PubSub+ Advanced Event Broker to publish, subscribe, request/reply and store/replay messages.
azure-spring-boot-starter: Auto-configuration for Azure Services (Service Bus, Storage, Active Directory, Cosmos DB, Key Vault, and more).
azure-spring-boot-starter-active-directory: Spring Security integration with Azure Active Directory for authentication.
azure-spring-boot-starter-keyvault-secrets: Manage application secrets and keys.
azure-spring-boot-starter-storage:Azure Storage service integration.
spring-boot-starter-data-redis:Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and much more.
spring-boot-starter-data-redis-reactive: Access Redis key-value data stores in a reactive fashion with Spring Data Redis.
spring-boot-starter-data-mongodb: Store data in flexible, JSON-like documents, meaning fields can vary from document to document and data structure can be changed over time.
spring-boot-starter-data-mongodb-reactive: Provides asynchronous stream processing with non-blocking back pressure for MongoDB.
spring-boot-starter-data-elasticsearch:A distributed, RESTful search and analytics engine with Spring Data Elasticsearch.
spring-boot-starter-data-cassandra:A free and open-source, distributed, NoSQL database management system that offers high-scalability and high-performance.
spring-boot-starter-data-couchbase:NoSQL document-oriented database that offers in memory-first architecture, geo-distributed deployments, and workload isolation.
spring-boot-starter-data-couchbase-reactive:Access Couchbase NoSQL database in a reactive fashion with Spring Data Couchbase.
spring-geode-starter:Apache Geode is a data management platform that helps users build real-time, highly concurrent, highly performant and reliable Spring Boot applications at scale that is compatible with Pivotal Cloud Cache.
spring-boot-starter-data-neo4j: An open source NoSQL database that stores data structured as graphs consisting of nodes, connected by relationships.
spring-boot-starter-data-jdbc: Persist data in SQL stores with plain JDBC using Spring Data.
spring-boot-starter-data-jpa: Persist data in SQL stores with Java Persistence API using Spring Data and Hibernate.
spring-boot-starter-data-r2dbc:Provides Reactive Relational Database Connectivity to persist data in SQL stores using Spring Data in reactive applications.
spring-boot-starter-jdbc: Database Connectivity API that defines how a client may connect and query a database
mybatis-spring-boot-starter: Persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis couples objects with stored procedures or SQL statements using a XML descriptor or annotations.
spring-boot-starter-actuator: Supports built in (or custom) endpoints that let you monitor and manage your application – such as application health, metrics, sessions, etc.
spring-boot-admin-starter-client: Required for your application to register with a Codecentric’s Spring Boot Admin Server instance.
spring-boot-admin-starter-server: A community project to manage and monitor your Spring Boot applications. Provides a UI on top of the Spring Boot Actuator endpoints.
spring-boot-starter-data-ldap: Makes it easier to build Spring based applications that use the Lightweight Directory Access Protocol.
spring-boot-starter-oauth2-client:Spring Boot integration for Spring Security’s OAuth2/OpenID Connect client features.
spring-boot-starter-oauth2-resource-server:Spring Boot integration for Spring Security’s OAuth2 resource server features.
spring-boot-starter-security: Highly customizable authentication and access-control framework for Spring applications.
okta-spring-boot-starter: Okta specific configuration for Spring Security/Spring Boot OAuth2 features. Enable your Spring Boot application to work with Okta via OAuth 2.0/OIDC.
spring-cloud-starter: Non-specific Spring Cloud features, unrelated to external libraries or integrations (e.g. Bootstrap context and @RefreshScope).
spring-cloud-starter-task: Allows a user to develop and run short lived microservices using Spring Cloud. Run them locally, in the cloud, and on Spring Cloud Data Flow.
spring-boot-starter-freemarker: Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.
spring-boot-starter-groovy-templates: Groovy templating engine.
spring-boot-starter-mustache: Logic-less Templates. There are no if statements, else clauses, or for loops. Instead there are only tags.
spring-boot-starter-thymeleaf: A modern server-side Java template engine for both web and standalone environments. Allows HTML to be correctly displayed in browsers and as static prototypes.
spring-boot-starter-data-rest: Exposing Spring Data repositories over REST via Spring Data REST.
spring-boot-starter-hateoas: Eases the creation of RESTful APIs that follow the HATEOAS principle when working with Spring / Spring MVC.
spring-boot-starter-jersey: Framework for developing RESTful Web Services in Java that provides support for JAX-RS APIs.
spring-boot-starter-web: Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.
spring-boot-starter-web-services: Facilitates contract-first SOAP development. Allows for the creation of flexible web services using one of the many ways to manipulate XML payloads.
spring-boot-starter-webflux: Build reactive web applications with Spring WebFlux and Netty.
vaadin-spring-boot-starter: A web framework that allows you to write UI in pure Java without getting bogged down in JS, HTML, and CSS.