Introduction to Spring 5 and Spring MVC/REST

Course Description

Spring 5 provides an evolutionary advance of Spring's powerful capabilities. This course introduces these capabilities, as well as providing guidelines on when and how to use them. It includes coverage of the three main configuration styles: Java-based (@Configuration), annotation-based (@Component), and the traditional XML-based configuration that may still play an important role in existing and new projects.


Audience: Java developers who need to work with Spring based applications
Prerequisites: A good working knowledge of basic Java, JDBC, and Servlets/JSP
The standard platform does all labs with the Eclipse IDE, and the lab instructions include detailed directions for setting up and using it. The course can be made available for all major development environments, including IBM RAD and IntelliJ.

Introduction to Spring

Overview of Spring Technology
Spring Introduction
Dependencies and Dependency Injection (DI)

Configuration in Depth

Java Based Configuration (@Configuration)
Integrating Configuration Types
Bean Scope and Lifecycle
Externalizing Properties

Spring Boot Overview

maven and Spring
Spring Boot Structure
Spring POMs with Boot Parents
Spring Boot Starters
Other Capabilities

Spring Testing

Testing and JUnit Overview
Spring TestContext Framework

Spring and Spring Data with Hibernate/JPA

Overview of Spring database support
Configuring a DataSource
Using Spring with Hibernate
Using Spring with JPA
Spring Data Overview
Using Spring Data

Spring Transaction (TX) Management

Declarative TX Management (REQUIRED, etc.)
TX Scope and Propagation
Pointcut-based Configuration of Transactions

Spring Web Integration and Intro to Spring MVC

Java EE Web App Integration
ContextLoaderListener and WebApplicationContext
Web MVC Overview
Spring MVC Basics

Additional Spring MVC Capabilities

@ModelAttribute and Reference Data
Forms and Binding, Spring Form Tags
Sessions and @SessionAttributes
Validation / JSR-303

RESTful Services with Spring

REST Overview and Principles
REST and Spring MVC
Requests and Responses
Ajax Overview

Working with JSON and XML

Generating JSON
Generating XML
Content Negotiation

Java Clients for RESTful Services

Client Requirements and Spring's RestTemplate
getForObject() / getForEntity()
Other RestTemplate Methods
Accessing Headers / exchange()

Common REST Patterns

GET: Read
POST: Create
PUT: Update
DELETE: Delete
Programming on server side, and client side (with RestTemplate)

Additional New Features in Spring 5

Updates to Spring Core
WebFlux / Reactive Web Framework

[Optional] XML Specific Configuration

Collections - lists, sets, etc.
Additional Capabilities