Basics of Spring Kafka
Learn about Spring Boot and the important APIs to build applications using Spring Kafka.
We'll cover the following...
Introduction to Spring Boot
Spring Boot, a project built on top of the Spring Framework, is designed to simplify the bootstrapping and development of a new Spring application. The term Spring is often used synonymously with Spring Framework—a comprehensive tool for building Java applications. On top of this framework, Spring Boot offers a more specialized and refined toolset to simplify developers’ tasks.
One of the primary goals of Spring Boot is to eliminate the complexity of configuration associated with developing Spring applications. It takes an opinionated approach to configuration, meaning it provides default configurations and simplifies the setup process, allowing developers to get up and running with minimum configuration, while also providing the flexibility to adjust the settings to fit specific needs. Another key feature of Spring Boot is its embedded servers, such as Tomcat, Jetty, and Undertow. This means that there’s no need for developers to deploy WAR files to external application servers, enabling rapid development and testing. Spring Boot’s embedded servers are not a requirement, though; we can also deploy our Spring Boot applications to traditional application servers.
The Spring Boot Actuator module provides production-ready features right out of the box. It helps expose operational information of the application, like metrics, health checks, environment details, and more, via HTTP or JMX endpoints. This information can be integral in monitoring and managing our application when it’s pushed to production. Spring Boot also has excellent support for building web applications and RESTful services. With features such as automatic content negotiation, domain class conversion, and various view technologies, developing web applications with Spring MVC becomes straightforward. Regarding data access, Spring Boot offers intelligent configuration of Spring Data repositories and provides seamless integration with various data stores, including traditional RDBMS, NoSQL databases, and more. Furthermore, it automatically manages the transaction ...