This course offers hands-on experience with the major features of Spring and Spring Boot, which includes configuration, data access, REST, AOP, auto-configuration, actuator, security, and Spring testing framework to build enterprise and microservices applications. On completion, participants will have a foundation for creating enterprise and cloud-ready applications.


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

Learning Objectives

By the end of the course, you should be able to meet the following objectives:
Spring configuration using Java Configuration and Annotations
Aspect oriented programming with Spring
Testing Spring applications using JUnit 5
Spring Data Access - JDBC, JPA and Spring Data
Spring Transaction Management
Simplifying application development with Spring Boot
Spring Boot auto-configuration, starters and properties
Build a simple REST application using Spring Boot, embedded Web Server and fat JARs or classic WARs
Implementing REST client applications using RestTemplate and WebClient
Spring Security
Enable and extend metrics and monitoring capabilities using Spring Boot actuator
Utilize Spring Boot enhancements to testing

  • Introduction to Spring

  • Java configuration and the Spring application
    @Configuration and @Bean annotations
    @Import: working with multiple configuration files
    Defining bean scopes
    Launching a Spring Application and obtaining Beans

  • Spring JAVA Configuration: A Deeper Look

  • External properties & Property sources
    Environment abstraction
    Using bean profiles
    Spring Expression Language (SpEL)

  • Annotation-based Dependency Injection

  • Component scanning
    Autowiring using @Autowired
    Java configuration versus annotations, mixing.
    Lifecycle annotations: @PostConstruct and
    Stereotypes and meta-annotations

  • Factory Pattern in Spring

  • Using Spring FactoryBeans

  • Advanced Spring: How Does Spring Work Internally?

  • The Spring Bean Lifecycle
    The BeanFactoryPostProcessor interception point
    The BeanPostProcessor interception point
    Spring Bean Proxies
    @Bean method return types

  • Aspect-oriented programming

  • What problems does AOP solve?
    Defining pointcut expressions
    Implementing various types of advice

  • Testing a Spring-based Application

  • Spring and Test-Driven Development
    Spring 5 integration testing with JUnit 5
    Application context caching and the @Dirties Context annotation
    Profile selection with @Active Profiles
    Easy test data setup with @Sql

  • Data Accss and JDBC with Spring

  • How Spring integrates with existing data access technologies
    Data Access Exception hierarchy
    Spring‘s Jdbc Template

  • Database Transactions with Spring

  • Transactions overview
    Transaction management with Spring
    Transaction propagation and rollback rules
    Transactions and integration testing

  • Spring Boot Introduction

  • Introduction to Spring Boot Features
    Value Proposition of Spring Boot
    Creating a simple Boot application using Spring
    Initializer website

  • Spring Boot Dependencies, Auto-configuration, and Runtime

  • Dependency management using Spring Boot starters
    How auto-configuration works
    Configuration properties
    Overriding auto-configuration
    Using Command Line Runner

  • JPA with Spring and Spring Data

  • Quick introduction to ORM with JPA
    Benefits of using Spring with JPA
    JPA configuration in Spring
    Configuring Spring JPA using Spring Boot
    Spring Data JPA dynamic repositories

  • Spring MVC Architecture and Overview

  • Introduction to Spring MVC and request processing
    Controller method signatures
    Using @Controller, @RestController and
    @GetMapping annotations
    Configuring Spring MVC with Spring Boot
    Spring Boot packaging options, JAR or WAR

  • Rest with Spring MVC

  • An introduction to the REST architectural style
    Controlling HTTP response codes with @ResponseStatus
    Implementing REST with Spring MVC,
    @RequestMapping, @RequestBody and
    Spring MVC’s HttpMessageConverters and
    automatic content negotiation

  • Spring Security

  • What problems does Spring Security solve?
    Configuring authentication
    Implementing authorization by intercepting URLs
    Authorization at the Java method level
    Understanding the Spring Security filter chain
    Spring security testing

  • Actuators, Metrics and Health Indicators

  • Exposing Spring Boot Actuator endpoints
    Custom Metrics
    Health Indicators
    Creating custom Health Indicators
    External monitoring systems

  • Spring Boot Testing Enhancements

  • Spring Boot testing overview
    Integration testing using @SpringBootTest
    Web slice testing with MockMvc framework
    Slices to test different layers of the application

  • Spring Security Oauth (Optional Topic)

  • OAuth 2 Overview
    Implementing OAuth 2 using Spring Security OAuth

  • Reactive Applications with Spring (Optional Topic)

  • Overview of Reactive Programming concepts
    Reactive Programming support in Spring
    Using Spring’s reactive WebClient


Application developers who want to increase their understanding of Spring and Spring Boot with hands-on experience and a focus on fundamentals will benefit from this course.




Some developer experience using Java, an IDE (Eclipse, STS or IntelliJ) and build tools such as Maven or Gradle


Length: 4.0 days (32 hours)


Not Your Location? Change

Course Schedule:

To request a custom delivery, please chat with an expert.