Spring Framework Training Course

Learn the fundamentals of Spring Framework and apply it


  • 5 Days

What do I need?

  • Webinar : A laptop, and a stable internet connection. The recommended minimum speed is around 10 Mbps.
  • Classroom Training : A laptop, please notify us if you are not bringing your own laptop. Please see the calendar below for the schedule


  • Attendance : If you have attended 80% of the sessions and completed all the class work, you qualify for the Attendance Certificate.
  • Competency : If you have also completed all the practical projects as described the Outcomes section, you qualify for the Competency Certificate.


What you will learn

  • Know the Fundamentals of Spring Framework 5 and how it assists developers in various way to build Java Apps.
  • Deployment
  • Expert Best Practises
  • Building reactive applications
  • Spring MVC
  • Spring Security
  • How to publish and consume RESTful API's
  • Reactive Programming Facilities and Features

Day One


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
2.2 Processing form submission

2.3 Validating form input

  • Declaring validation rules
  • Performing validation at form binding
  • Displaying validation errors
2.4 Working with view controllers

2.5 Choosing a view template library

  • Caching templates
3 Working with data

3.1 Reading and writing data with JDBC

  • 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


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


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
Back to top