Spring Boot Development

This course takes a detailed look at how to use Spring Boot to create sophisticated applications rapidly, according to best practices and contemporary enterprise application patterns.

The course explains key structural concepts in Spring Boot, such as auto-configuration, profiles, and packaging. We take a detailed look at important Spring Boot APIs, including MVC, WebFlux, REST, Data, Messaging, and Integration. We also show how to create microservices and containerize them using Docker.

During the course you will build a complete Spring Boot application from front to back, incorporating all the features covered in the course. This will help you understand how each ingredient fits into the bigger picture of the Spring Boot application landscape.

Duration

5 days

 

Prerequisites

  • At least 6 months experience with Java
  • Familiarity with Spring Framework is beneficial, but not essential

What you'll learn

  • Creating and configuring Spring Boot applications
  • Understanding Spring Boot auto-configuration
  • Creating Web applications
  • Creating and consuming REST services
  • Reactive programming and WebFlux
  • Accessing SQL and NoSQL data sources
  • Implementing Spring Boot messaging
  • Microservices and Spring Cloud essentials
  • Spring Boot testing
  • Spring Boot and containerization
  • Spring Boot and microservices
  • Spring Boot security

Course details

Introduction to Spring Boot

  • What is Spring Boot
  • Spring Boot vs. Spring Framework
  • Spring Boot features and benefits

Creating a Spring Boot Application

  • Using Spring Boot CLI
  • Using Maven and Gradle
  • Using Spring Initializr
  • IDE support
  • Understanding how Spring Boot applications work
  • Packaging options

Managing Beans and Dependency Injection

  • Defining components
  • Configuration classes
  • Beans
  • Dependency injection
  • Value injection and the Spring Expression Language

Spring Boot Auto-Configuration

  • What is auto-configuration
  • Understanding @EnableXxx annotations
  • Managing auto-configuration

Effective Spring Development

  • Property files and YAML files
  • Sources of external configuration
  • Spring profiles
  • Spring Boot Actuator
  • Spring Boot Admin

Creating Web Applications

  • Spring MVC essentials
  • Defining controllers and views
  • Managing forms
  • Additional techniques

Creating REST Services

  • REST essentials
  • Creating and consuming REST services
  • Managing links via HATEOAS and HAL
  • Supporting CORS
  • Integrating SPA technologies, e.g. Angular

Spring Data

  • Using JDBC
  • Using JPA
  • Creating CRUD repositories
  • Dealing with NoSQL databases
  • Working with Elasticsearch
  • Database migrations using Flyway

Spring Messaging

  • Messaging essentials
  • Configuring queuing infrastructure
  • Sending and receiving messages
  • Using Spring Boot with Kafka

Spring Integration

  • Enterprise Application Integration
  • Using Spring Integration
  • Spring Integration channel interfaces and implementations
  • Examples of Spring Integration
  • Service activation
  • Integration options

Spring Boot Testing

  • Unit testing
  • Integration testing
  • Using WireMock to mock REST endpoints

Spring Boot and Containerization

  • Introduction to containerization and Docker
  • Understanding Docker images
  • A closer look at images and containers
  • Containerizing a Spring Boot application
  • Automating Dockerization via Maven

Spring Boot and Microservices

  • Overview of microservices
  • A closer look at microservices and the cloud
  • Microservices in practice
  • Microservices application example

Spring Boot Security

  • Security essentials
  • Authentication and authorization techniques