Course duration
- 5 days
Course Benefits
- 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
- Understand and use Boot’s auto-configuration
- Customize Boot’s behavior with properties and in other ways
- Work with the ORM (Object-Relational Mapping) module to integrate Spring with technologies such as 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
- Understand REST, and use Spring REST to build RESTful services
- Use Ajax-based front ends with Spring REST
- Use RestTemplate to create Java REST clients
Public expert-led online training from the convenience of your home, office or anywhere with an internet connection. Guaranteed to run .
Private classes are delivered for groups at your offices or a location of your choice.
Course Outline
- Introduction to Spring
- Overview of Spring Technology
- Motivation for Spring, Spring Architecture
- The Spring Framework
- maven and Spring
- 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
- Overview of Spring Technology
- 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 <import>
- 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
- Java Based Configuration (&Configuration)
- Spring Boot Overview
- 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
- Testing and JUnit Overview
- Spring and Spring Data with JPA
- Overview of Spring database support
- Configuring a DataSource
- 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
- RESTful Services with Spring
- REST Overview and Principles
- REST and Spring MVC
- Spring support for REST
- &RequestMapping/&PathVariable, &RequestBody, &ResponseBody
- URI Templates and &PathVariable
- Controllers with &RestController
- Requests and Responses
- Ajax Overview
- Working with JSON and XML
- Generating JSON
- JSON Overview
- JSON Representations for Resources
- Message Converters
- Generating XML
- JAXB and Jackson Message Converters for XML
- JAXB / &XmlRootElement
- Content Negotiation
- Generating JSON
- 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)
- Boot and its Configuration/Customization
- SpringBootApplication / CommandLineRunner / ApplicationRunner
- Working with Properties - YAML and .properties
- Logging and its Configuration
- Spring TestContext Framework
- Auto-configuration and Customization
- Boot Database Support
- Overview and JDBC Support
- JPA Support
- Spring Boot Web/Security
- Spring Boot Web
- Spring Boot Security
- Spring Boot Data REST
- Additional Spring 5 Features
- Updates to Spring Core
- WebFlux / Reactive Web Framework
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Experience in the following is required for this Spring class:
- Working knowledge of Java programming, including use of inheritance, interfaces, and exceptions.
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.