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 ControlUse 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 TechnologyMotivation 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 SpringSpring Boot Structure
Spring POMs with Boot Parents
Spring Boot Starters
Other Capabilities
Spring Testing
Testing and JUnit OverviewWriting 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 supportConfiguring 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
OverviewDeclarative TX Management (REQUIRED, etc.)
TX Scope and Propagation
Pointcut-based Configuration of Transactions
Java EE Web Applications with Spring
Java EE Web App OverviewContextLoaderListener and WebApplicationContext
Using Spring Beans
Additional New Features in Spring 5
Updates to Spring CoreWebFlux / 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