SpringCore 5 Training Course

Learn the fundamentals of SpringCore 5 and how to apply your knowledge


Our Intro To Programming level is required for entry into this course

Who will benefit

School leavers intending to do one of our Coding Bootcamps. Professionals who are already familiar with another programming language This course is also the first module in all our our Coding Bootcamps


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 HTML, CSS, JavaScript and how they work together to build apps.
  • Know how to debug JavaScript programs in the browser.
  • Know how to use data structures, control flow to build 5-10 useful small apps combining HTML, CSS and JavaScript.
  • Have enough JavaScript knowledge to pass a recognised international JavaScript Quiz.
  • Build an HTML Web Site showing off your portfolio of projects and host it online.

What do I need?

Live Online Training : 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 brining your own laptop. Please see the calendar below for the schedule

Day One1.2.3.4


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
4 Securing Spring

4.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

Day Two5.6.7.8

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

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 Three9.10.11.12

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
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

Day Four13.14.15.16


13 Discovering services

13.1 Thinking in microservices

13.2 Setting up a service registry

  • Configuring Eureka
  • Scaling Eureka
13.3 Registering and discovering services

  • Configuring Eureka client properties
  • Consuming services
14 Managing configuration

14.1 Sharing configuration

14.2 Running Config Server

  • Enabling Config Server
  • Populating the configuration repository
14.3 Consuming shared configuration

14.4 Serving application- and profile-specific properties

  • Serving application-specific properties
  • Serving properties from profiles
14.5 Keeping configuration properties secret

  • Encrypting properties in Git
  • Storing secrets in Vault
14.6 Refreshing configuration properties on the fly

  • Manually refreshing configuration properties
  • Automatically refreshing configuration properties
15 Handling failure and latency

15.1 Understanding circuit breakers

15.2 Declaring circuit breakers

  • Mitigating latency
  • Managing circuit breaker thresholds
15.3 Monitoring failures

  • Introducing the Hystrix dashboard
  • Understanding Hystrix thread pools
15.4 Aggregating multiple Hystrix streams


16 Working with Spring Boot Actuator

16.1 Introducing Actuator

  • Configuring Actuator's base path
  • Enabling and disabling Actuator endpoints
16.2 Consuming Actuator endpoints

  • Fetching essential application information
  • Viewing configuration details
  • Viewing application activity
  • Tapping runtime metrics
16.3 Customizing Actuator

  • Contributing information to the /info endpoint
  • Defining custom health indicators
  • Registering custom metrics
  • Creating custom endpoints
16.4 Securing Actuator

Day Five17.18.19

17 Administering Spring

17.1 Using the Spring Boot Admin

  • Creating an Admin server
  • Registering Admin clients
17.2 Exploring the Admin server

  • Viewing general application health and information
  • Watching key metrics
  • Examining environment properties
  • Viewing and setting logging levels
  • Monitoring threads
  • Tracing HTTP requests
17.3 Securing the Admin server

  • Enabling login in the Admin server
  • Authenticating with the Actuator
18 Monitoring Spring with JMX

    18.1 Working with Actuator MBeans

    18.2 Creating your own MBeans

    18.3 Sending notifications

19 Deploying Spring 

    19.1 Weighing deployment options 

    19.2 Building and deploying WAR files 

    19.3 Pushing JAR files to Cloud Foundry 

    19.4 Running Spring Boot in a Docker container 

    19.5 The end is where we begin 

Back to top