Day One
PART 1 FOUNDATIONAL SPRING
1 Getting started with Spring .
1.1 What is Spring?
1.2 Initializing a Spring application
- Initializing a Spring project with Spring Tool Suite
- Examining the Spring project structure
1.3 Writing a Spring application
- Handling web requests
- Defining the view
- Testing the controller
- Building and running the application
- Getting to know Spring Boot DevTools
1.4 Surveying the Spring landscape
- The core Spring Framework
- Spring Boot
- Spring Data
- Spring Security
- Spring Integrationand Spring Batch
- Spring Cloud
2 Developing web applications
2.1 Displaying information
- Establishing the domain
- Creating a controller class
- Designing the view
- Declaring validation rules
- Performing validation at form binding
- Displaying validation errors
- Caching templates
- Adapting the domain for persistence
- Working with JdbcTemplate
- Defining a schema and preloading data
- Inserting data
3.2 Persisting data with Spring Data JPA
- Adding Spring Data JPA to the project
- Annotating the domain as entities
- Declaring JPA repositories
- Customizing JPA repositories
Day Two
4 Securing Spring
.1 Enabling Spring Security
4.2 Configuring Spring Security
- In-memory user store
- JDBC-based user store
- LDAP-backed user store
- Customizing user authentication
4.3 Securing web requests
- Securing requests
- Creating a custom login page
- Logging out
- Preventing cross-site request forgery
4.4 Knowing your user
5 Working with configuration properties
- Understanding Spring's environment abstraction
- Configuring a data source
- Configuring the embedded server
- Configuring logging
- Using special property values
5.2 Creating your own configuration properties
- Defining configuration properties holders
- Declaring configuration property metadata
5.3 Configuring with profiles
- Defining profile-specific properties
- Activating profiles
- Conditionally creating beans with profiles
PART 2 INTEGRATED SPRING
6 Creating REST services
6.1 Writing RESTful controllers
- Retrieving data from the server
- Sending data to the server
- Updating data on the server
- Deleting data from the server
6.2 Enabling hypermedia
- Adding hyperlinks
- Creating resource assemblers
- Naming embedded relationships
6.3 Enabling data-backed services
- Adjusting resource paths and relation names
- Paging and sorting
- Adding custom endpoints
- Adding custom hyperlinks to Spring Data endpoints
Day Three
7 Consuming REST services
7.1 Consuming REST endpoints with RestTemplate
- GETting resources
- PUTting resources
- DELETEing resources
- POSTing resource data
7.2 Navigating REST APIs with Traverson
8 Sending messages asynchronously
8.1 Sending messages with JMS
- Setting up JMS
- Sending messages with JmsTemplate
- Receiving JMS messages
8.2 Working with RabbitMQ and AMQP
- Adding RabbitMQ to Spring
- Sending messages with RabbitTemplate
- Receiving message from RabbitMQ
8.3 Messaging with Kafka
- Setting up Spring for Kafka messaging
- Sending messages with KafkaTemplate
- Writing Kafka listeners
Day Four
9 Integrating Spring
9.1 Declaring a simple integration flow
- Defining integration flows with XML
- Configuring integration flows in Java
- Using Spring Integration DSL configuration
9.2 Surveying the Spring Integration landscape
- Message channels
- Filters
- Transformers
- Routers
- Splitters
- Service activators
- Gateways
- Channel adapters
- Endpoint modules
9.3 Creating an email integration flow
PART 3 REACTIVE SPRING
10 Introducing Reactor
10.1 Understanding reactive programming
- Defining Reactive Streams
10.2 Getting started with Reactor
- Diagramming reactive flows
- Adding Reactor dependencies
10.3 Applying common reactive operations
- Creating reactive types
- Combining reactive types
- Transforming and filtering reactive streams
- Performing logic operations on reactive types
Day Five
11 Developing reactive APIs
11.1 Working with Spring WebFlux
- Introducing Spring WebFlux
- Writing reactive controllers
11.2 Defining functional request handlers
11.3 Testing reactive controllers
- Testing GET requests
- Testing POST requests
- Testing with a live server
11.4 Consuming REST APIs reactively
- GETting resources
- Sending resources
- Deleting resources
- Handling errors
- Exchanging requests
11.5 Securing reactive web APIs
- Configuring reactive web security
- Configuring a reactive user details service
Persisting data reactively
12.1 Understanding Spring Data's reactive story
- Spring Data reactive distilled
- Converting between reactive and non-reactive types
- Developing reactive repositories
12.2 Working with reactive Cassandra repositories
- Enabling Spring Data Cassandra
- Understanding Cassandra data modeling
- Mapping domain types for Cassandra persistence
- Writing reactive Cassandra repositories
12.3 Writing reactive MongoDB repositories
- Enabling Spring Data MongoDB
- Mapping domain types to documents
- Writing reactive MongoDB repository interfaces