Spring in Action (5th Edition) Walls Covers Spring 5.
https://www.yakibooki.com/download/spring-in-action-5th-edition/
FIFTH EDITION
Craig Walls
M A N N I This
N G Book is Available on YakiBooki.com
Spring in Action (5th Edition) Walls
https://www.yakibooki.com/download/spring-in-action-5th-edition/
Praise for Spring in Action, 4th edition
“The best book for Spring—updated and revised.”
—Gregor Zurowski, Sotheby’s
“The classic, remastered and full of awesomeness.”
—Mario Arias, Cake Solutions Ltd.
“Informative, accurate, and insightful!
—Jeelani Shaik, D3Banking.com
“After ten years, this is still the clearest and most comprehensive introduction to the
core concepts of the Spring platform.”
—James Wright, Sword-Apak
“This book is a quick and easy way to get into the Spring Framework Universe. Simply
perfect for Java developers.”
—Jens O’Richter, freelance Senior Software Architect
“This book belongs on the bookshelf of any serious Java developer who uses Spring.”
—Jonathan Thoms, Expedia Inc.
“Spring in Action is an excellent travel companion for the huge landscape that is the
Spring Framework.”
—Ricardo Lima, Senado Federal do Brasil
“Pragmatic advice for Java’s most important framework.”
—Mike Roberts, Information Innovators
This Book is Available on YakiBooki.com
Spring in Action (5th Edition) Walls
https://www.yakibooki.com/download/spring-in-action-5th-edition/
Spring in Action
Fifth Edition
COVERS SPRING 5.0
CRAIG WALLS
MANNING
SHELTER ISLAND
This Book is Available on YakiBooki.com
Spring in Action (5th Edition) Walls
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
https://www.yakibooki.com/download/spring-in-action-5th-edition/
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email:
[email protected]©2019 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
any form or by means electronic, mechanical, photocopying, or otherwise, without prior written
permission of the publisher.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books
are printed on paper that is at least 15 percent recycled and processed without the use of
elemental chlorine.
Manning Publications Co. Development editor: Jennifer Stout
20 Baldwin Road Project manager: Janet Vail
PO Box 761 Copy editors: Frances Buran, Andy Carroll
Shelter Island, NY 11964 Proofreaders: Melody Dolab, Katie Tennant
Technical proofreader: Joshua White
Typesetter: Dennis Dalinnik
Cover designer: Marija Tudor
ISBN: 9781617294945
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – DP – 23 22 21 20 19 18
This Book is Available on YakiBooki.com
Spring in Action (5th Edition) Walls
https://www.yakibooki.com/download/spring-in-action-5th-edition/
brief contents
PART 1 FOUNDATIONAL SPRING ................................................1
1 ■ Getting started with Spring 3
2 ■ Developing web applications 29
3 ■ Working with data 56
4 ■ Securing Spring 84
5 ■ Working with configuration properties 114
PART 2 INTEGRATED SPRING .................................................135
6 ■ Creating REST services 137
7 ■ Consuming REST services 169
8 ■ Sending messages asynchronously 178
9 ■ Integrating Spring 209
PART 3 REACTIVE SPRING .....................................................239
10 ■ Introducing Reactor 241
11 ■ Developing reactive APIs 269
12 ■ Persisting data reactively 296
iii
This Book is Available on YakiBooki.com
iv BRIEF CONTENTS
Spring in Action (5th Edition) Walls
PART 4 CLOUD-NATIVE SPRING ..............................................321
13 ■ Discovering services 323
14 ■ Managing configuration 343
15 ■ Handling failure and latency 376
https://www.yakibooki.com/download/spring-in-action-5th-edition/
PART 5 DEPLOYED SPRING ....................................................393
16 ■ Working with Spring Boot Actuator 395
17 ■ Administering Spring 429
18 ■ Monitoring Spring with JMX 446
19 ■ Deploying Spring 454
This Book is Available on YakiBooki.com
Spring in Action (5th Edition) Walls
https://www.yakibooki.com/download/spring-in-action-5th-edition/
contents
preface xiii
acknowledgments xv
about this book xvii
PART 1 FOUNDATIONAL SPRING ......................................1
1 Getting started with Spring 3
1.1 What is Spring? 4
1.2 Initializing a Spring application 6
Initializing a Spring project with Spring Tool Suite 7
Examining the Spring project structure 11
1.3 Writing a Spring application 17
Handling web requests 17 Defining the view 19
■
Testing the controller 20 Building and running the
■
application 21 Getting to know Spring Boot DevTools 23
■
Let’s review 25
1.4 Surveying the Spring landscape 26
The core Spring Framework 26 Spring Boot 26
■
Spring Data 27 Spring Security 27 Spring Integration
■ ■
and Spring Batch 27 Spring Cloud 28
■
This Book is Available on YakiBooki.com
vi CONTENTS
Spring in Action (5th Edition) Walls
2 Developing web applications 29
2.1 Displaying information 30
Establishing the domain 31 ■ Creating a controller class 32
Designing the view 35
2.2 Processing form submission 40
https://www.yakibooki.com/download/spring-in-action-5th-edition/
2.3 Validating form input 45
Declaring validation rules 46 Performing validation at
■
form binding 48 Displaying validation errors 49
■
2.4 Working with view controllers 51
2.5 Choosing a view template library 52
Caching templates 54
3 Working with data 56
3.1 Reading and writing data with JDBC 57
Adapting the domain for persistence 59 Working with
■
JdbcTemplate 60 Defining a schema and preloading data
■
64
Inserting data 66
3.2 Persisting data with Spring Data JPA 75
Adding Spring Data JPA to the project 76 Annotating the ■
domain as entities 76 Declaring JPA repositories 80
■
Customizing JPA repositories 81
4 Securing Spring 84
4.1 Enabling Spring Security 85
4.2 Configuring Spring Security 86
In-memory user store 88 JDBC-based user store
■
89
LDAP-backed user store 92 Customizing user
■
authentication 96
4.3 Securing web requests 103
Securing requests 104 Creating a custom login page 106
■
Logging out 109 Preventing cross-site request forgery 109
■
4.4 Knowing your user 110
5 Working with configuration properties 114
5.1 Fine-tuning autoconfiguration 115
Understanding Spring’s environment abstraction 116
Configuring a data source 117 Configuring the embedded
■
server 119 Configuring logging 120 Using special
■ ■
property values 121
This Book is Available on YakiBooki.com
CONTENTS vii
Spring in Action (5th Edition) Walls
5.2 Creating your own configuration properties 122
Defining configuration properties holders 124 ■ Declaring
configuration property metadata 126
5.3 Configuring with profiles 129
Defining profile-specific properties 130 ■ Activating profiles 131
https://www.yakibooki.com/download/spring-in-action-5th-edition/
Conditionally creating beans with profiles 132
PART 2 INTEGRATED SPRING .......................................135
6 Creating REST services 137
6.1 Writing RESTful controllers 138
Retrieving data from the server 140 Sending data to the
■
server 145 Updating data on the server 146 Deleting data
■ ■
from the server 148
6.2 Enabling hypermedia 149
Adding hyperlinks 152 Creating resource assemblers 154
■
Naming embedded relationships 159
6.3 Enabling data-backed services 160
Adjusting resource paths and relation names 162 Paging and ■
sorting 164 Adding custom endpoints 165 Adding custom
■ ■
hyperlinks to Spring Data endpoints 167
7 Consuming REST services 169
7.1 Consuming REST endpoints with RestTemplate 170
GETting resources 172 PUTting resources 173
■
DELETEing resources 174 POSTing resource data
■ 174
7.2 Navigating REST APIs with Traverson 175
8 Sending messages asynchronously 178
8.1 Sending messages with JMS 179
Setting up JMS 179 Sending messages with JmsTemplate 181
■
Receiving JMS messages 188
8.2 Working with RabbitMQ and AMQP 192
Adding RabbitMQ to Spring 193 Sending messages with
■
RabbitTemplate 194 Receiving message from RabbitMQ 198
■
8.3 Messaging with Kafka 202
Setting up Spring for Kafka messaging 203 Sending messages
■
with KafkaTemplate 204 Writing Kafka listeners 206
■
This Book is Available on YakiBooki.com
viii CONTENTS
Spring in Action (5th Edition) Walls
9 Integrating Spring 209
9.1 Declaring a simple integration flow 210
Defining integration flows with XML 211 Configuring ■
integration flows in Java 213 Using Spring Integration’s
■
DSL configuration 215
https://www.yakibooki.com/download/spring-in-action-5th-edition/
9.2 Surveying the Spring Integration landscape 216
Message channels 217 Filters 219 Transformers 220
■ ■
Routers 221 Splitters 223 Service activators 225
■ ■
Gateways 227 Channel adapters 228 Endpoint
■ ■
modules 230
9.3 Creating an email integration flow 231
PART 3 REACTIVE SPRING ...........................................239
10 Introducing Reactor
10.1
241
Understanding reactive programming 242
Defining Reactive Streams 243
10.2 Getting started with Reactor 245
Diagramming reactive flows 246 ■ Adding Reactor
dependencies 247
10.3 Applying common reactive operations 248
Creating reactive types 249 Combining reactive types 253
■
Transforming and filtering reactive streams 257 Performing■
logic operations on reactive types 266
11 Developing reactive APIs 269
11.1 Working with Spring WebFlux 269
Introducing Spring WebFlux 271 ■ Writing reactive
controllers 272
11.2 Defining functional request handlers 276
11.3 Testing reactive controllers 279
Testing GET requests 279 Testing POST requests 282
■
Testing with a live server 284
11.4 Consuming REST APIs reactively 285
GETting resources 285 Sending resources 287
■
Deleting resources 288 Handling errors 289
■
Exchanging requests 290
This Book is Available on YakiBooki.com