What this book covers
Chapter 1, Building RESTful APIs, teaches you how to write, consume, and test RESTful API with Spring Boot 3.
Chapter 2, Securing Spring Boot Applications with OAuth2, shows you how to deploy an authorization server and use it to protect a RESTful API and a website. You will learn how to authenticate users with Google accounts. You will also learn how to protect applications with Azure AD B2C.
Chapter 3, Observability, Monitoring, and Application Management, explores how to leverage the observability features available in Spring Boot with Actuator. This chapter uses Open Zipkin, Prometheus, and Grafana, consuming the observability data exposed by a Spring Boot application for monitoring.
Chapter 4, Spring Cloud, covers how to use Spring Cloud to develop a distributed system composed of several microservices. We’ll use Eureka Server, Spring Cloud Gateway, Spring Config, and Spring Boot Admin.
Chapter 5, Data Persistence and Relational Database Integration with Spring Data, delves into how to integrate an application with PostgreSQL using Spring Data JPA. You will define repositories and use Java Persistance Query Language (JPQL) and Native SQL. You will learn to use transactions, database versioning, and migrations with Flyway, and Testcontainers for integration tests.
Chapter 6, Data Persistence and NoSQL Database Integration with Spring Data, explains the benefits and trade-offs of using NoSQL databases such as MongoDB and Cassandra, teaching you how to tackle some common challenges of NoSQL databases, such as data partitioning or concurrency management. You will use Testcontainers for integration tests with MongoDB and Cassandra.
Chapter 7, Finding Bottlenecks and Optimizing Your Application, describes how to run a load test using JMeter against a Spring Boot application, apply different optimizations, such as caching or building a native application, and compare the improvements with the original results. You will also learn some useful techniques to prepare a Native application, such as using the GraalVM Tracing Agent.
Chapter 8, Spring Reactive and Spring Cloud Stream, explores how to use Spring Reactive for high concurrency scenarios, creating a reactive RESTful API, a reactive API client, and the R2DBC driver for PostgreSQL. You will learn how to create an event-driven application, using Spring Cloud Stream connected to a RabbitMQ server.
Chapter 9, Upgrading from Spring Boot 2.x to Spring Boot 3.0, explains how to manually upgrade a Spring Boot 2.6 application to the latest version of Spring Boot 3. You will prepare the application before upgrading to Spring Boot 3 and fix all the issues, step by step, after the upgrade. You will also learn how to use OpenRewrite to automate part of the migration process.