0345 4506120

Core Spring

The Spring Framework is the leading Java EE solution for enterprise software.

This course covers Spring from Version 4 upwards, currently delivered using Version 5. It comprises sessions dealing with Dependency Injection (DI); Aspect Oriented Programming, (AOP); Spring Web including MVC, REST, and WebSocket; Spring Data  including JDBC, ORM, and Transaction Management; Spring Security; and Spring Boot. It also includes an introduction to Reactive Programming, Spring WebFlux, and  Spring Cloud.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.

The delegate will learn and acquire skills as follows:

  • Obtaining Spring Beans using DI
  • Implementing cross-cutting concerns using AOP
  • Building a Spring MVC web app
  • Building a REST API with Spring MVC
  • Building a WebSocket service
  • Using a JDBC Template
  • Integrating a Spring app with Hibernate and JPA
  • Transaction Management
  • User authentication
  • URL and method-level authorization
  • Building a simple Spring Boot app

Who will the Course Benefit?

The Core Spring course will benefit Java developers who are new to Spring and want to develop large and complex enterprise-level applications.

Learning Objectives

Course Objectives

This course aims to provide the delegate with the knowledge to be able to develop (or contribute to the development of) a Spring web app which exposes a RESTful API  and that both reads and writes data to/from persistent storage. The web app should be secure insofar as it authenticates users, and restricts access. The delegate  should also be aware of Spring Boot, Reactive Programming, Spring WebFlux, and Spring Cloud.

Pre-Requisites

Requirements

Delegates attending this course should be competent Java developers able to build simple applications that exploit APIs including Collections, IO, and JDBC.  Delegates would also benefit from having some previous experience with Servlets and JSP (or equivalent technology).

This knowledge can be obtained by attendance on the pre-requisite Java Programming 2 and Developing Applications with Java EE courses.

Pre-Requisite Courses

  • Java Programming 2
  • Developing Applications with Java EE

Follow-On Courses

  • Angular Development
  • React
Notes:
  • Course technical content is subject to change without notice.
  • Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions.

Course Content

Day 1

Course Introduction

  • Administration and Course Materials
  • Course Structure and Agenda
  • Delegate and Trainer Introductions

Session 1: INTRODUCTION TO SPRING

  • What is Spring
  • Introduction to Dependency Injection
  • Introduction to Aspect Oriented Programming
  • Introduction to Templates
  • Application Context
  • The Lifecycle of a Spring Bean
  • Spring Modules (Projects)
  • What's new in Spring 5.0

Session 2: DEPENDENCY INJECTION (DI)

  • DI configuration options
  • DI with XML
  • DI with Java
  • Autowiring (DI with Annotations)
  • Importing and Mixing Configurations
  • Environments and Profiles
  • Conditional Beans
  • Bean Scope
  • Spring Expression Language (SpEL)

Session 3: ASPECT ORIENTED PROGRAMMING (AOP)

  • Terminology
  • Aspects with XML
  • Aspects with Annotations
  • AspectJ

Day 2

Session 4: SPRING MVC

  • The Lifecycle of a Request
  • Spring Controllers
  • Request Parameters
  • Form Processing
  • View Resolution
  • Views: JSP, Thymeleaf et al.

Session 5: REST

  • REST Endpoints with Spring MVC
  • HTTP Message Converters
  • Errors and Headers
  • Consuming REST Resources using RestTemplate

Session 6: WEBSOCKET

  • WebSocket Handlers
  • Configuration with Java
  • Configuration with XML

Session 7: INTRODUCTION TO SPRING WEBFLUX (V5 ONLY)

  • Introduction to Reactive Programming
  • HTTP, Web, and Dispatcher Handlers
  • Annotated Controllers
  • Functional Endpoints
  • and more...

Day 3

Session 8: SPRING DATA SOURCES

  • Embedded Data Source (for development and testing)
  • JDBC Driver
  • Connection Pool
  • JNDI
  • Profiles

Session 9: JDBC

  • JDBC Templates
  • Using a JDBC Template with Lambdas
  • Named Parameters

Session 10: ORM

  • Integrating Hibernate with Spring
  • Application-managed JPA
  • Container-managed JPA

Session 11: TRANSACTIONS

  • Transaction Strategy
  • Synchronizing Resources
  • Declarative Transaction Management
  • Programmatic Transaction Management

Day 4

Session 12: SPRING SECURITY

  • User Details Services
  • Authentication
  • Authorization (URL Interception)
  • JSP Security Tag Library
  • Method-level Security
  • Filter Chain

Session 13: SPRING BOOT

  • Starter Dependencies
  • Autoconfiguration/li>
  • CLI
  • Actuator
  • Spring Boot Applications

Session 14: INTRODUCTION TO SPRING CLOUD

  • Microservice Architecture
  • Service Registration
  • Load Balancing
  • and more...

     

Privacy Notice

In order to provide you with the service requested we will need to retain and use your contact information in accordance with our Privacy Notice. If you choose to provide us with this information you explicitly consent to us using the information as necessary to provide the request service to you. If you do not agree please do not proceed to request the service from us.

Marketing Permissions

Would you like to receive our newsletter and other information on products and services which we think will be of interest to you by email. We will always treat your information with care and in accordance with our Privacy Notice. You are free to withdraw this permission at any time.

 

Online Courses

You may prefer an online course if you are looking for a flexible and cost-effective solution. Online courses allow you to study at your own pace, at a time that suits you.

We have the following eLearning options available:

Our Customers Include