Spring & Spring Boot Course

Learn the most widely used enterprise Java framework, from the basic notions to advanced concepts and practices

Description

The course provides a thorough presentation and practical examples for learning the Spring Framework and the Spring Boot set of tools, focusing on the most important concepts and architectural patterns. The participants will learn how to use Spring and Spring Boot to develop highly performant and maintainable enterprise Java applications.

During the course, we will also learn how to integrate a few other projects from the Spring and Spring Boot ecosystems:

Through practical exercises and real-world examples, the participants will gain hands-on experience in creating, improving and deploying Spring and Spring Boot based applications.

Objectives

  • Understand the core Spring principles and architectural patterns - Inversion of Control and Dependency Injection
  • Develop end-to-end applications using Spring REST and Spring Data
  • Use Spring Boot to streamline the application development
  • Securing an application using Spring Security
  • Build, deploy and monitor Spring Boot based applications

Duration and Schedule

The minimum course duration is 4 or 5 days, 6 or 7 hours per day. If possible, we highly recommend a longer duration, to allow more time for hands-on work and for working together on an end-to-end Spring & Spring Boot project. The project will be started from scratch and will feature all the concepts learned during the course.

Each course session will be composed of a theoretical and a practical part. The ratio between the theoretical and practical components will vary depending on:

  • The complexity of the discussed topic
  • The questions and discussions related to it
  • The participant's interest in that topic

Target Audience

This course is suitable for:

  • Java Tech Leads and Architects who want to improve their understanding in:
    • The architectural patterns used in Spring and Spring Boot
    • The end-to-end lifetime of a Spring based application
  • Java Developers looking to either:
    • Learn the Spring Framework and/or the Spring Boot set of tools from scratch
    • Improve their knowledge on them

Prerequisites

The following prerequisites are required:

  • At least medium knowledge of the Java programming language
  • One of the latest LTS Java releases: 11, 17 or 21 (as of May 2024)
  • The IntelliJ IDEA IDE installed (the Community edition is sufficient, the Ultimate edition is highly recommended)
  • PostgreSQL installed (any version is fine)
    • Can be also used as a Docker container, for simplicity

Presented Topics

Day 1: Spring Framework overview and Core Concepts
  • Enterprise applications overviews
  • Spring Framework introduction
  • Spring beans - overview, attributes, parameters, aliasing, wiring
  • Component model
  • Spring Expression Language (SpEL)

Day 2: Spring Boot intro, Spring Web and Database Access
  • Spring Boot intro
  • Spring Web - REST and MVC overview
  • Centralized exception handling
  • Database access, using JDBC and JPA

Day 3: Database Access, Spring Security, Unit and Integration testing
  • Database access continued (if needed)
  • Spring Security
  • Unit and integration testing

Day 4: A few more advanced features
  • Asynchronous processing overview
  • Task scheduling - clustered and non-clustered mode
  • Intra-JVM events processing
  • Resilience patterns
  • Caching, cache providers

Day 5: AOP integration, Monitoring and Packaging an Application
  • AOP (Aspect Oriented Programming) integration
  • Monitoring the application using Spring Boot Actuators
  • Packaging and running the application

Course Schedule

Day 1

Spring Framework overview and Core Concepts
  • Enterprise applications overview
  • Spring Framework introduction
  • Spring beans - overview, attributes, parameters, aliasing, wiring
  • Component model

Day 2

Spring Boot intro, Spring Web and Database Access
  • Spring Boot introduction
  • Spring Web - REST and MVC overview
  • Centralized exception handling
  • Database access, using JDBC and JPA

Day 3

Database Access, Spring Security, Unit and Integration testing
  • Database access continued
  • Securing the application using Spring Security
  • Unit and integration testing a Spring application

Day 4

A few more advanced features
  • Asynchronous processing
  • Task scheduling, clustered and non-clustered
  • Intra-JVM events processing
  • Resilience patterns - Retry, Rate & Time Limiting, Circuit Breaker and Bulkhead
  • Caching, cache providers

Day 5

AOP Integration, Monitoring, Packaging, Running and Deploying the Application
  • AOP (Aspect Oriented Programming) integration
  • Monitoring the application using Spring Boot Actuators
  • Packaging, running and deploying the application

Understanding Your Needs

Please contact us for a short discussion, to understand your learning needs and timeline

Testimonials

We really enjoyed Bogdan's training sessions. It's always cool to learn and have fun while doing them. He is very patient and always prepared to offer the best solution/explanation for any problem/question. ... I also love his ability to extend the context for each chapter, offering many smart hooks to integrate the concept in a broader picture, which makes it all easier to understand.

Sorin, Crossover

Bogdan is our coach who helped shape our vision to use Java and Spring/SpringBoot in today's marketplace. He is highly skilled, extremely passionate and has a strong work ethic. With his unique and practical approach, he taught us from technology fundamentals on up to software design and best practices. He is continuously helping us progress on a growing path in software development. I enjoy working with Bogdan very much and I consider him a friend.

Andrei, Óce

When we approached Bogdan for a Java training, our goal was to up-skill our team of PL/SQL developers in order to become proficient in Java. [...] Bogdan has vast experience in the topics and very good communication and presentation skills. The pace was very good and he was very thorough in responding all questions, providing lots of related documentation for further study.

Radu, Nokia

Working with Bogdan is really inspiring and I always learn something new from his training and coaching sessions. All the training sessions are well-structured, use examples and employ hands-on components. What I enjoyed most during his training sessions is that they made me eager to learn more and to extend my knowledge. And it's not hard to do, thanks to the documentation that Bogdan provides for further reading.

Corina, Cerner

For a year and a half I've participated in various courses held by Bogdan, from Java 8, Spring, Maven to Docker. He has a good methodology, a strong background, he keeps you interested and he is open for discussions even after the training sessions, which is very important. Usually we have more questions after we start using the knowledge from the courses.

Ion, Sociéte Générale

I have participated in several training sessions held by Bogdan, including Java 8, Maven, CI & CD, Git and Spring. Every time we were thrilled to discover the information and best practices described, especially as he exemplified them with many hands-on examples. Furthermore, there were a few things present in each session that defined Bogdan's approach, namely, professionalism, vast knowledge and experience, innovative solutions, a great personality and a sense of humor.

Lavinia, Elysian

I am the self-learning type; I usually get bored at every course/training, very quickly. With this course, it was not the case. I payed attention ~95% of the time, which is very rare for me.

Ionuț, Nokia

I was pleasantly surprised by this course, being probably much more than other courses that can be found online. The presentation is very good, the materials are well structured and prepared, with many examples. Moreover, I consider the context information to be welcome, some of it was not very "settled" for me, such as the information about the application architecture, etc. Another plus regarding the training and the trainer is the fact that I managed to pay attention approximately 99% of the time, which I find amazing.

Dorina, ANAF

Contact Us

Please send us a message about any inquiry you may have

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.