About the course
Spring Boot has fundamentally changed how developers build applications with the Spring Framework, enabling the rapid creation of production-ready, standalone, and highly maintainable applications through convention over configuration. Spring Boot 3, the latest major version built on Spring Framework 6 and requiring Java 17+, represents a significant step forward, bringing enhanced performance, support for modern Java language features, migration to Jakarta EE, and crucial updates to key areas like security and observability. This 4-day intensive hands-on training course provides a comprehensive deep dive into developing applications with Spring Boot 3, covering its core principles, key features, and seamless integration with the wider Spring ecosystem to build robust web, data-driven, and messaging-based applications.
The course begins with a thorough overview of the Spring and Spring Boot 3 ecosystem, exploring their motivations, the benefits of Spring Boot 3's auto-configuration and "opinionated" approach, and setting up modern Spring Boot 3 projects using Spring Initializr, Maven, and Gradle. Participants will master the fundamental Spring concepts of Beans and Dependency Injection (DI), understanding the Spring Container and various modern configuration approaches using Annotations, JavaConfig, and Lambda expressions. A significant portion of the training is dedicated to building different types of applications: creating web applications using Spring Web MVC, developing RESTful Services (including introducing modern client approaches like WebClient and RestClient), integrating with various data sources using Spring Data (covering JDBC, JPA/Hibernate, and NoSQL databases like MongoDB), and integrating Messaging capabilities using Spring JMS and technologies like RabbitMQ.
Furthermore, the course provides insight into Spring Boot 3 Internals, common customisation options, and the benefits of features like improved observability and native image support. Participants will learn how to effectively Test Spring Boot 3 applications using the powerful Spring Boot Testing Framework and JUnit 5+. Crucially, the course includes in-depth coverage of implementing robust application Security with Spring Boot 3, focusing on the modern Spring Security 6+ configuration model, web security, and method-level security, reflecting the significant changes in the latest versions. The course concludes by exploring the Spring Boot Actuator for monitoring and managing Spring Boot 3 applications in production. Through extensive hands-on labs using Java 17+ and Spring Boot 3, attendees will gain practical experience building, configuring, testing, and securing a variety of applications.
Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Explain the motivation behind Spring and Spring Boot, understand key Spring Boot 3 features
- Master the fundamental Spring concepts of Beans and Dependency Injection (DI), using modern configuration approaches (Annotations, JavaConfig, Lambda).
- Build web applications using Spring Web MVC in Spring Boot 3.
- Develop RESTful Services with Spring Boot 3 and consume REST services using modern clients like WebClient and RestClient.
- Integrate data access into Spring Boot 3 applications using Spring Data, covering JDBC, JPA/Hibernate, and NoSQL databases like MongoDB.
- Integrate messaging capabilities into Spring Boot 3 applications using Spring JMS
- Understand Spring Boot 3 Internals, customisation points, and features like improved observability and native image support.
- Effectively test Spring Boot 3 applications using the Spring Boot Testing Framework and JUnit 5+.
- Implement application Security with Spring Boot 3, focusing on the modern Spring Security 6+ configuration model, web security, and method security.
- Utilise the Spring Boot Actuator for monitoring and managing Spring Boot 3 applications.
- Understand how Spring Boot 3 simplifies integration with the wider Spring ecosystem using modern configuration approaches.
-
This 4-day intensive hands-on training course is designed for Java software developers who want to learn how to build modern, production-ready applications using Spring Boot 3. It is ideal for:
Java Developers looking to learn Spring Boot for the first time using the latest version (3.x).
Developers familiar with the traditional Spring Framework or older versions of Spring Boot (1.x or 2.x) who need to update their skills to Spring Boot 3 and leverage its latest features, Jakarta EE migration, and updated security model.
Architects and Technical Leads evaluating or implementing Spring Boot 3 for their projects.
Anyone involved in building or maintaining modern Java applications using the Spring ecosystem.
-
Participants should have attended our Java programming course, or have equivalent experience:
Experience developing applications using the Java programming language is essential. Familiarity with Java 17 or later is highly recommended for Spring Boot 3 development.
Familiarity with basic Spring Framework concepts is helpful but not strictly required, as the course covers core Spring within the Spring Boot context.
A basic understanding of web development concepts (HTTP, REST) and database concepts (SQL, ORM basics) is beneficial.
-
This Spring Boot with Java course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Spring Boot Overview
Motivation behind Spring and the Spring Framework.
What is Spring Boot and its purpose?
Spring Boot 3 Motivation and Key Features.
Auto-configuration, Standalone applications, and Opinionated defaults.
Java 17+ Baseline and Jakarta EE migration.
Setting up Spring Boot 3 projects with Maven and Gradle.
Using Spring Initializr.
IDE Support for Spring Boot development.
First Spring Boot Application
Using the Spring Boot CLI (overview).
Creating a simple "Hello World" application using Spring Initializr and IDE.
Understanding Spring Boot auto-configuration in practice.
Packaging Spring Boot applications (JARs, WARs).
Lab: Creating and running a basic Spring Boot 3 application.
Spring Beans and Dependency Injection (DI)
Introduction to Spring Beans and the Spring Container.
Spring Context configuration approaches (Annotations, JavaConfig, Lambda).
Bean Scoping.
Spring Annotations for configuration and DI.
Inversion of Control and Dependency Injection concepts.
Spring Dependency Injection mechanisms.
Wiring Beans together.
Lab: Working with Spring Beans and DI in a Spring Boot 3 application.
Spring Web MVC
Introduce Spring Web MVC framework.
Present the flow through the MVC architecture.
Creating a simple Web MVC application using Spring Boot 3.
Defining Controllers and handling requests.
Handling view resolution.
Building and Deploying MVC applications.
Java Config web applications and the role of auto-configuration (vs. manual WebAppInitializer).
Lab: Building a basic Spring Boot 3 Web MVC application.
Spring Boot and RESTful Services
Introduction to Web Services and the principles of REST.
Building RESTful services with Spring Boot 3.
Using annotations (@RestController, @GetMapping, etc.).
Introduce Spring REST Clients: Consuming external REST services.
WebClient: The modern, non-blocking client for reactive and blocking applications.
RestClient: The new blocking client with a modern API in Spring Boot 3.2+.
Mention: RestTemplate (for understanding legacy code).
Lab: Creating a Spring Boot 3 RESTful service and building a client to consume it using WebClient/RestClient.
Spring Data and Spring Boot
Introduction to Spring Data project and its goals.
Creating a Spring Data project using Spring Boot Initializr.
Data Access Objects (DAO) concepts.
Spring DAO support.
Working with JDBC in Spring Boot.
Spring DAO Exception Hierarchy.
Using Object Mappers for data mapping.
Exploiting JPA (and Hibernate) for ORM in Spring Boot 3.
Integrating NoSQL (e.g., MongoDB) databases with Spring Boot 3.
Creating Data Access Objects (DAOs) using Spring Data Repositories.
Lab: Implementing data access using Spring Data JPA or MongoDB in Spring Boot 3.
Spring JMS and Spring Boot
Basic idea of message queues and messaging patterns (point-to-point, publish and subscribe).
Integrating a message server like RabbitMQ with Spring Boot.
JMS (Java Message Service) overview.
Spring JMS Development.
Using a Spring POJO bean as a message consumer.
Lab: Implementing messaging with Spring Boot 3 and RabbitMQ or JMS.
Integration with the Spring Ecosystem
Using XML and Annotation configuration (focus on Annotation and JavaConfig in Spring Boot 3).
Using JavaConfig for advanced configuration.
Discussion: Choosing the right configuration approach in modern Spring Boot.
Spring Boot Internals and Defaults
Understanding the SpringApplication class.
Custom Banner configuration (using banner.txt).
Using SpringApplicationBuilder.
Configuring ApplicationRunner and CommandLineRunner.
Custom Properties Prefix and configuration management.
Creating a Spring Boot Starter project (overview).
Improved Observability with Micrometer and Micrometer Tracing.
Native Image Support with GraalVM (overview).
Lab: Customising Spring Boot defaults.
Spring Boot and Spring Test
Introduce Testing with Spring.
Highlight Test Support in Spring Boot.
Using JUnit 5.x for testing.
Integration of Spring and JUnit.
The Spring Boot Testing Framework (@SpringBootTest, test slices).
Lab: Writing unit and integration tests for a Spring Boot 3 application.
Security with Spring Boot
Introduction to Spring Security.
Security with Spring Boot 3: Auto-configuration and key features.
Fundamental Elements of Spring Security (Authentication, Authorization, Principal).
Spring Security Managers and Providers (overview).
Securing Spring Web Applications: Modern Spring Security 6+ configuration.
Configuring HTTP security using SecurityFilterChain beans and authorizeHttpRequests.
Other Authentication providers (e.g., JDBC, LDAP, OAuth2 - overview).
Method Security: Securing individual methods.
Defining Method level Security.
Annotation Based Method Security (@PreAuthorize, @PostAuthorize, etc.).
Alternative Annotations (@Secured, @RolesAllowed).
Lab: Implementing and configuring security in a Spring Boot 3 web application using the modern configuration model.
Spring Boot Actuator
Introduction to the Spring Boot Actuator Module.
Actuator Endpoints (health, info, metrics, etc.).
Changing the Endpoint ID and Management Endpoints Path.
Actuator CORS support.
Securing Endpoints (using Spring Security 6+).
Implementing Custom Actuator Endpoints.
Spring Boot Actuator health indicators.
Spring Boot Actuator metrics.
Lab: Exploring and configuring Spring Boot 3 Actuator endpoints and security.
-
Spring Boot Documentation: The official documentation for Spring Boot. Ensure you are viewing the documentation for version 3.x.
Spring Framework Documentation: The official documentation for the core Spring Framework (v6+).
Spring Initializr: The web tool for generating new Spring Boot projects.
Spring Security Documentation: The official documentation for Spring Security. Ensure you are viewing the documentation for version 6+.
Spring Data Documentation: The official documentation for the Spring Data project.
Maven Documentation: Official documentation for the Maven build tool.
Gradle Documentation: Official documentation for the Gradle build tool.
JUnit 5 Documentation: Official documentation for the JUnit 5 testing framework.
RabbitMQ Documentation: Official documentation for the RabbitMQ message broker.
Spring Boot Actuator Guide: FAQs covering the Actuator module.
Trusted by