liveBook · Manning

What you will learn in Spring in Action, Sixth Edition

by Craig Walls

Chapter by chapter

Chapter 1: Getting started with Spring

1.1 What is Spring? · 1.2 Initializing a Spring application · 1.2.1 Initializing a Spring project with Spring Tool Suite · 1.2.2 Examining the Spring project structure · 1.3 Writing a Spring application · 1.3.1 Handling web requests · 1.3.2 Defining the view · 1.3.3 Testing the controller · 1.3.4 Building and running the application · 1.3.5 Getting to know Spring Boot DevTools · 1.3.6 Let’s review · 1.4 Surveying the Spring landscape · 1.4.1 The core Spring Framework · 1.4.2 Spring Boot · 1.4.3 Spring Data · 1.4.4 Spring Security · 1.4.5 Spring Integration and Spring Batch · 1.4.6 Spring Cloud · 1.4.7 Spring Native · 1.5 Summary

What you learn in chapter 1 →

Chapter 2: Developing web applications

2.1 Displaying information · 2.1.1 Establishing the domain · 2.1.2 Creating a controller class · 2.1.3 Designing the view · 2.2 Processing form submission · 2.3 Validating form input · 2.3.1 Declaring validation rules · 2.3.2 Performing validation at form binding · 2.3.3 Displaying validation errors · 2.4 Working with view controllers · 2.5 Choosing a view template library · 2.5.1 Caching templates · 2.6 Summary

What you learn in chapter 2 →

Chapter 3: Working with data

3.1 Reading and writing data with JDBC · 3.1.1 Adapting the domain for persistence · 3.1.2 Working with JdbcTemplate · 3.1.3 Defining a schema and preloading data · 3.1.4 Inserting data · 3.2 Working with Spring Data JDBC · 3.2.1 Adding Spring Data JDBC to the build · 3.2.2 Defining repository interfaces · 3.2.3 Annotating the domain for persistence · 3.2.4 Preloading data with CommandLineRunner · 3.3 Persisting data with Spring Data JPA · 3.3.1 Adding Spring Data JPA to the project · 3.3.2 Annotating the domain as entities · 3.3.3 Declaring JPA repositories · 3.3.4 Customizing repositories · 3.4 Summary

What you learn in chapter 3 →

Chapter 4: Working with nonrelational data

4.1 Working with Cassandra repositories · 4.1.1 Enabling Spring Data Cassandra · 4.1.2 Understanding Cassandra data modeling · 4.1.3 Mapping domain types for Cassandra persistence · 4.1.4 Writing Cassandra repositories · 4.2 Writing MongoDB repositories · 4.2.1 Enabling Spring Data MongoDB · 4.2.2 Mapping domain types to documents · 4.2.3 Writing MongoDB repository interfaces · 4.3 Summary

What you learn in chapter 4 →

Chapter 5: Securing Spring

5.1 Enabling Spring Security · 5.2 Configuring authentication · 5.2.1 In-memory user details service · 5.2.2 Customizing user authentication · 5.3 Securing web requests · 5.3.1 Securing requests · 5.3.2 Creating a custom login page · 5.3.3 Enabling third-party authentication · 5.3.4 Preventing cross-site request forgery · 5.4 Applying method-level security · 5.5 Knowing your user · 5.6 Summary

What you learn in chapter 5 →

Chapter 6: Working with configuration properties

6.1 Fine-tuning autoconfiguration · 6.1.1 Understanding Spring’s environment abstraction · 6.1.2 Configuring a data source · 6.1.3 Configuring the embedded server · 6.1.4 Configuring logging · 6.1.5 Using special property values · 6.2 Creating your own configuration properties · 6.2.1 Defining configuration property holders · 6.2.2 Declaring configuration property metadata · 6.3 Configuring with profiles · 6.3.1 Defining profile-specific properties · 6.3.2 Activating profiles · 6.3.3 Conditionally creating beans with profiles · 6.4 Summary

What you learn in chapter 6 →

Chapter 7: Creating REST services

7.1 Writing RESTful controllers · 7.1.1 Retrieving data from the server · 7.1.2 Sending data to the server · 7.1.3 Updating data on the server · 7.1.4 Deleting data from the server · 7.2 Enabling data-backed services · 7.2.1 Adjusting resource paths and relation names · 7.2.2 Paging and sorting · 7.3 Consuming REST services · 7.3.1 GETting resources · 7.3.2 PUTting resources · 7.3.3 DELETEing resources · 7.3.4 POSTing resource data · 7.4 Summary

What you learn in chapter 7 →

Chapter 8: Securing REST

8.1 Introducing OAuth 2 · 8.2 Creating an authorization server · 8.3 Securing an API with a resource server · 8.4 Developing the client · 8.5 Summary

What you learn in chapter 8 →

Chapter 9: Sending messages asynchronously

9.1 Sending messages with JMS · 9.1.1 Setting up JMS · 9.1.2 Sending messages with JmsTemplate · 9.1.3 Receiving JMS messages · 9.2 Working with RabbitMQ and AMQP · 9.2.1 Adding RabbitMQ to Spring · 9.2.2 Sending messages with RabbitTemplate · 9.2.3 Receiving messages from RabbitMQ · 9.3 Messaging with Kafka · 9.3.1 Setting up Spring for Kafka messaging · 9.3.2 Sending messages with KafkaTemplate · 9.3.3 Writing Kafka listeners · 9.4 Summary

What you learn in chapter 9 →

Chapter 10: Integrating Spring

10.1 Declaring a simple integration flow · 10.1.1 Defining integration flows with XML · 10.1.2 Configuring integration flows in Java · 10.1.3 Using Spring Integration’s DSL configuration · 10.2 Surveying the Spring Integration landscape · 10.2.1 Message channels · 10.2.2 Filters · 10.2.3 Transformers · 10.2.4 Routers · 10.2.5 Splitters · 10.2.6 Service activators · 10.2.7 Gateways · 10.2.8 Channel adapters · 10.2.9 Endpoint modules · 10.3 Creating an email integration flow · 10.4 Summary

What you learn in chapter 10 →

Chapter 11: Introducing Reactor

11.1 Understanding reactive programming · 11.1.1 Defining Reactive Streams · 11.2 Getting started with Reactor · 11.2.1 Diagramming reactive flows · 11.2.2 Adding Reactor dependencies · 11.3 Applying common reactive operations · 11.3.1 Creating reactive types · 11.3.2 Combining reactive types · 11.3.3 Transforming and filtering reactive streams · 11.3.4 Performing logic operations on reactive types · 11.4 Summary

What you learn in chapter 11 →

Chapter 12: Developing reactive APIs

12.1 Working with Spring WebFlux · 12.1.1 Introducing Spring WebFlux · 12.1.2 Writing reactive controllers · 12.2 Defining functional request handlers · 12.3 Testing reactive controllers · 12.3.1 Testing GET requests · 12.3.2 Testing POST requests · 12.3.3 Testing with a live server · 12.4 Consuming REST APIs reactively · 12.4.1 GETting resources · 12.4.2 Sending resources · 12.4.3 Deleting resources · 12.4.4 Handling errors · 12.4.5 Exchanging requests · 12.5 Securing reactive web APIs · 12.5.1 Configuring reactive web security · 12.5.2 Configuring a reactive user details service · 12.6 Summary

What you learn in chapter 12 →

Chapter 13: Persisting data reactively

13.1 Working with R2DBC · 13.1.1 Defining domain entities for R2DBC · 13.1.2 Defining reactive repositories · 13.1.3 Testing R2DBC repositories · 13.1.4 Defining an OrderRepository aggregate root service · 13.2 Persisting document data reactively with MongoDB · 13.2.1 Defining domain document types · 13.2.2 Defining reactive MongoDB repositories · 13.2.3 Testing reactive MongoDB repositories · 13.3 Reactively persisting data in Cassandra · 13.3.1 Defining domain classes for Cassandra persistence · 13.3.2 Creating reactive Cassandra repositories · 13.3.3 Testing reactive Cassandra repositories · 13.4 Summary

What you learn in chapter 13 →

Chapter 14: Working with RSocket

14.1 Introducing RSocket · 14.2 Creating a simple RSocket server and client · 14.2.1 Working with request-response · 14.2.2 Handling request-stream messaging · 14.2.3 Sending fire-and-forget messages · 14.2.4 Sending messages bidirectionally · 14.3 Transporting RSocket over WebSocket · 14.4 Summary

What you learn in chapter 14 →

Chapter 15: Working with Spring Boot Actuator

15.1 Introducing Actuator · 15.1.1 Configuring Actuator’s base path · 15.1.2 Enabling and disabling Actuator endpoints · 15.2 Consuming Actuator endpoints · 15.2.1 Fetching essential application information · 15.2.2 Viewing configuration details · 15.2.3 Viewing application activity · 15.2.4 Tapping runtime metrics · 15.3 Customizing Actuator · 15.3.1 Contributing information to the /info endpoint · 15.3.2 Defining custom health indicators · 15.3.3 Registering custom metrics · 15.3.4 Creating custom endpoints · 15.4 Securing Actuator · 15.5 Summary

What you learn in chapter 15 →

Chapter 16: Administering Spring

16.1 Using Spring Boot Admin · 16.1.1 Creating an Admin server · 16.1.2 Registering Admin clients · 16.2 Exploring the Admin server · 16.2.1 Viewing general application health and information · 16.2.2 Watching key metrics · 16.2.3 Examining environment properties · 16.2.4 Viewing and setting logging levels · 16.3 Securing the Admin server · 16.3.1 Enabling login in the Admin server · 16.3.2 Authenticating with the Actuator · 16.4 Summary

What you learn in chapter 16 →

Chapter 17: Monitoring Spring with JMX

17.1 Working with Actuator MBeans · 17.2 Creating your own MBeans · 17.3 Sending notifications · 17.4 Summary

What you learn in chapter 17 →

Chapter 18: Deploying Spring

18.1 Weighing deployment options · 18.2 Building executable JAR files · 18.3 Building container images · 18.3.1 Deploying to Kubernetes · 18.3.2 Enabling graceful shutdown · 18.3.3 Working with application liveness and readiness · 18.4 Building and deploying WAR files · 18.5 The end is where we begin · 18.6 Summary

What you learn in chapter 18 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.