Introduction to Spring

Course Description

Spring Framework provides an evolutionary advance of Spring’s powerful capabilities. This three-day Spring 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.
3 Days
Contact us for pricing
 

Prerequisites

Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions.

Course Objectives

Understand the core principles of Spring, and of Dependency Injection (DI) / Inversion of Control
Use the Spring Core module and DI to configure and wire application objects (beans) together
Know the different types of metadata (XML, annotations/@Component, and Java Configuration/@Configuration), and how and when to use them
Understand and use the complete capabilities of the Core module, such as lifecycle events, bean scopes, and the Spring API
Use Spring Boot to simplify dependency management and configuration
Work with the ORM (Object-Relational Mapping) module to integrate Spring with technologies such as Hibernate or JPA.
Use Spring Data to automatically generate JPA-based repository classes
Understand and use Spring’s transaction support, including the easy-to-use Java annotation support, as well as the tx/aop XML configuration elements
Integrate Spring with Java EE Web applications

Introduction to Spring

Overview of Spring Technology
Motivation for Spring, Spring Architecture
The Spring Framework

Spring Introduction
Declaring and Managing Beans
ApplicationContexts - The Spring Container
XML and @Component/@Named Config

Dependencies and Dependency Injection (DI)
Examining Dependencies
Dependency Inversion / Dependency Injection (DI)
DI in Spring - XML and @Autowired

Configuration in Depth

Java Based Configuration (@Configuration)
Overview, @Configuration, @Bean
Dependency Injection
Resolving Dependencies

Integrating Configuration Types
XML and @Component Pros/Cons
@Configuration Pros/Cons
Choosing a Configuration Style
Integrating with @Import and

Bean Scope and Lifecycle
Singleton, Prototype, and Other Scopes
Configuring Scope
Bean Lifecycle / Callbacks

Externalizing Properties
Properties Files
@PropertySource, property-placeholder
Using @Value
SpEL

Profiles
Overview and Configuration
Activating Profiles

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
Writing Tests - Test Classes, asserts, Naming Conventions
Running Tests - IDE, maven, ...
Test Fixtures - setup and teardown

Spring TestContext Framework
Overview
Configuration
Running Tests

Spring and Spring Data with Hibernate/JPA

Overview of Spring database support
Configuring a DataSource
Using Spring with Hibernate
High Level Hibernate Overview
SessionFactory configuration, LocalSessionFactoryBean
Contextual Sessions and Spring Integration

Using Spring with JPA
Managing the EntityManager (EM)
LocalContainerEntityManagerFactoryBean and Container-managed EMs
JEE and JNDI Lookup of the EM
Configuration and Vendor Adaptors
Creating a JPA Repository/DAO Bean - @PersistenceUnit, @PersistenceContext

Spring Data Overview
Overview and Architecture
Configuring Spring Data
Repositories and JPA Repositories
Using CrudRepository

Using Spring Data
Naming Conventions for Querying
Creating more Complex Queries
Query Configuration

Spring Transaction (TX) Management

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

Java EE Web Applications with Spring

Java EE Web App Overview
ContextLoaderListener and WebApplicationContext
Using Spring Beans

Additional New Features in Spring 5

Updates to Spring Core
WebFlux / Reactive Web Framework

XML Specific Configuration

Collections - lists, sets, etc.
Additional Capabilities
Factory Classes and Factory Methods
Definition Inheritance (Parent Beans)
AutoWiring with XML
Inner Beans, Compound Names

SpringSpring FrameworkSpring MVCSpring5Spring 5Spring 6