Mastering Spring 5.x is a hands-on Spring training course geared for experienced Java developers who need to understand what the Spring Framework is in terms of today's systems and architectures, and how to use Spring in conjunction with other technologies and frameworks. This leading-edge course provides added coverage of Spring's Aspect-Oriented Programming and the use of Spring Boot. It includes complete coverage of all new features in Spring 5.x. Students will gain hands-on experience working with Spring, using Maven for project and dependency management, and, optionally, a test-driven approach (using JUnit) to the labs in the course.


* Actual course outline may vary depending on offering center. Contact your sales representative for more information.

Learning Objectives

Working in an engaging hands-on programming environment, students will learn to:
Explain the issues associated with complex frameworks such as JEE and how Spring addresses those issues
Write applications that take advantage of the Spring container and the declarative nature of assembling simple components into applications.
Understand how to configure the framework Spring Boot and various options within Spring Boot for detailed configuration.
Understand and work on integrating Sprint Data into a Spring application.
Develop REST applications using Spring 5
Work with Spring Boot to facilitate Spring setup and configuration

  • The Spring Framework

  • Understand the value of Spring

    Explore Dependency Injection (DI) and Inversion of Control (IoC)

    Introduce different ways of configuring collaborators

    Spring as an Object Factory

    Initializing the Spring IoC Container

  • Configuring Spring Managed Beans

  • Introduce Java-based configuration

    The @Configuration and @Bean annotations

    Define bean dependencies

    Bootstrapping Java Config

    Context Injection in Configuration classes

    Using context Profiles

    Conditionally loading beans and configurations

    Bean Life-Cycle Methods

  • Defining Bean dependencies

  • Introduce Spring annotations for defining dependencies

    Explore the @Autowired annotation

    Stereotype Annotations

    Qualifying injection points

    Lifecycle annotations

    Using properties in Java based configuration

    The @Value annotation

    Using the Candidate Components Index

  • Introduction to Spring Boot

  • Introduce the basics of Spring Boot

    Explain auto-configuration

    Introduce the Spring Initializr application

    Bootstrapping a Spring Boot application

  • Working with Spring Boot

  • Provide an overview of Spring Boot

    Introduce starter dependencies

    Introduce auto-configuration

    @Enable... annotations

    Conditional configuration

    Spring Boot Externalized Configuration

    Bootstrapping Spring Boot

  • Introduction to Aspect Oriented Programming

  • Aspect Oriented Programming

    Cross Cutting Concerns

  • Spring AOP

  • Spring AOP in a Nutshell

    @AspectJ support

    Spring AOP advice types

    AspectJ pointcut designators

  • Spring Data Overview

  • Spring Data Capabilities and Features

    Spring Data repositories

    The Repository interfaces

    Defining the JPA entity

    Persisting entities using Spring Data JPA

    Bootstrapping the Spring Data application

  • Spring Data Query Methods

  • Querying data using Query methods

    Query builder mechanism

    Handling an Absence of Value

    Pagination and Ordering

    Asynchronous query methods

    Count and Delete Derived Query methods

  • Spring Data JPA Queries

  • JPA named queries

    @Query and @NamedQuery annotations

    Defining Query parameters

    Executing native queries

    SpEL expressions in queries

    Managing the Persistence Context after updates

  • REST principles

  • Introduce the six architectural constraints of REST

    Introduce Resources and Resource representations

    Best practices for defining Resource URIs

  • Introduction to RESTful Services in Spring

  • Discuss the request-response cycle of REST requests

    Defining a REST Controller in Spring

    Explain the @ResponseBody annotation

    Define request mappings

    Use path variables

  • Introduction to REST Clients in Spring

  • Introduce RestTemplate class

    Making GET, POST, PUT, HEAD, OPTIONS and DELETE requests

    Introduce the UriTemplate class

    Using HttpEntity and RequestEntity

    Use the exchange method to define ‘complex’ requests

    Process requests and responses using callback

    Configure the RestTemplate

  • Bootstrapping the REST application

  • Describe steps needed to bootstrap Spring REST application

    Configure Content Representation libraries

    Configure Spring MVC and map the Dispatcher Servlet

    Explain the advantages of using Spring Boot to setup the REST project

    Setup a Spring REST application using Spring Boot

  • Content Representation

  • Returning different media types from service

    Introduce negotiated resource representation

    Configure Message Converters

  • Implementing the REST Service

  • Process for Spring REST Implementation

    The Domain object

    Using Project Lombok to define the domain object

    (Not) Using Data Transfer Objects

    ResponseEntity builder interfaces

    Setting Location header using UriComponentsBuilder

  • Spring Boot Actuator

  • Understand Spring Boot Actuators

    Work with predefined Actuator endpoints

    Enabling Actuator endpoints

    Securing the Actuator

  • Developing in Spring Boot

  • Introduce Spring Boot Devtools

    Enable the ConditionEvaluationReport

    Debugging Spring Boot applications

  • Thymeleaf

  • Provide a quick overview of Thymeleaf

    Introduce Thymeleaf templates

    Create and run a Spring Thymeleaf MVC application


This introduction to Spring development course requires that incoming students possess intermediate-level Java programming skills and practical hands-on Java experience. This class is geared for experienced Java 8 (or higher version) developers who are new to Spring, who wish to understand how and when to use Spring in Java and JEE applications.




Take Before: Students should have development skills at least equivalent to or should have attended these as a pre-requisite: TT2100 Introduction to Java for OO Experienced Developers


Length: 4.0 days (32 hours)


Not Your Location? Change

Course Schedule:

Schedule select
10:00 AM ET -
6:00 PM ET
Filling Fast