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. (Course Price : R14 995)
  • Competency : If you have also enrolled for the additional competency projects, you qualify for the Competency Certificate. (Course Price : R18 995)


  • VMWare Spring Professional Certification. The course covers the majority of the topics, although not everything. Further reading will be recommended to fill the gaps. (Exam is not included and has to be written at an international exam center
  • NQF5 - Systems Development - Unit Standard 115392(12 credits) (If an MICT-Granted student)


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

Subscribe to our Newsletter for latest news.

© 2004+
Back to top