Learning Spring

Learning Spring

You can use this learning-by-doing course to gain a comprehensive & practical understanding of programming Spring applications.

Last updated on March 16, 2020 - 9 modules

Buy for $200 or Start Free Module

Due to the Coronavirus pandemic all courses are 33% off. Offer valid through June 1st. Regular Price: $300 .


Is this course for me?

This course is meant for you if any of the following apply:

  • You are new to Spring or Spring Boot and want to quickly start writing your own, professional Spring applications.

  • You do not know the difference between Spring Framework, Spring Boot or Spring Data.

  • You have been working with Spring for a while, but would love to get a comprehensive understanding of its inner workings.

How does this course work?

This course consists of several modules, that are structured along a well-orchestrated, unique learning path. Each module consists of several exercises that explain a certain aspect of Spring in detail.

This course is rather unconventional, in that it will not throw you into the deep end (Spring Boot), right from the beginning. To the contrary, you will start with the very Java basics and build the same application three times, each time with added technology and concepts.

  1. You will build a small web application without Spring, just with plain Java.

  2. You will add Spring framework to your web application and see its advantages over your plain Java solution.

  3. You will add Spring Boot to your web application and see its advantages over your Spring framework solution.

You will need to tackle this course linearly, as the modules build on top of each other.

While this might sound like a restriction to some (why bother with servlets when all you want to do is Spring ?), it will pay for itself with a comprehensive understanding of Spring and Spring Boot that you will not get anywhere else.

What are the prerequisites?

To finish this course you’ll need:

  1. A good understanding of the Java programming language (or alternatively, another language such as PHP, Javascript, Python or Ruby). If you are completely new to programming in an object-oriented programming language or to building web-applications this course is not for you.

  2. To have read & understood the What is Spring Framework? article on this very site. For the big picture of Spring’s ecosystem. This course builds on top of that knowledge.

  3. The following tools installed:

    • A recent Java version installed. Java 8 up to 13 will work fine.

    • An IDE installed, preferably the free Intellij Community Edition, as it offers all the tools you need to successfully finish this course.

    • Apache Maven installed, as it is the build and dependency management tool that we are going to use throughout this course.

Does this course include help/coaching?

Yes, if you bought this course you’ll get email help on any problems you’re stuck with. Typical response times are between 24-48hrs.

What if I don’t like the course? What about refunds?

As with all my courses, there’s a 14-day refund guarantee. If, for whatever reason, you don’t like the course, send a quick mail to ask@marcobehler.com for up to 14 days after purchase.

You’ll (usually) get your money back in the next 24 hours, no bad feelings involved.

Which versions of Spring are covered?

  • Spring: 5.2.4.RELEASE

  • Spring Boot: 2.2.5.RELEASE

Table of Contents

01 Java Webapps without Spring  Free

  1. What is this module about?
  2. How to setup the course webapp from scratch
  3. How to display HTML pages with HttpServlets
  4. How to write JSON endpoints with HttpServlets
  5. Poor Man’s Dependency Injection
  6. What you learned in this module

02 Spring IoC Basics  Scrambled

  1. What is this module about?
  2. Which Spring dependencies to add to a Maven project
  3. Writing your first ApplicationContext & Configuration
  4. How to work with @Beans and @Scopes
  5. How to work with @Component and @ComponentScan
  6. Spring’s @Autowired, Constructor, Field and Setter Injection
  7. How to work with @Bean lifecycles
  8. How to use Spring’s environment: Resources, Properties & Profiles
  9. What you learned in this module

03 Spring WebMVC: Rest Services  Scrambled

  1. What is this module about?
  2. How to add Spring Web MVC to a project
  3. How to write JSON @RestControllers with Spring WebMVC
  4. How to return XML in addition to JSON without code changes
  5. How to validate User input with Spring Web MVC
  6. How to properly handle exceptions in REST Services
  7. What you learned in this module

04 Spring WebMVC: HTML Pages  Scrambled

  1. What is this module about?
  2. How to return HTML with Spring WebMVC and Thymeleaf
  3. How to work with Spring MVC Models
  4. How to handle HTML Form submissions
  5. What you learned in this module

05 Spring Database Access  Scrambled

  1. What is this module about?
  2. How to add an embedded database and Spring JDBC to your project
  3. How to use Spring’s JDBC Template to CRUD database tables
  4. How to manage database @Transactions with Spring
  5. How Spring Data fits into the picture
  6. What you learned in this module

06 Spring Boot Basics  Scrambled

  1. What is this module about?
  2. How to setup Spring Boot Projects with Spring Initializr
  3. Inspecting a Spring Boot project
  4. How to build REST Services with Spring Boot
  5. How to configure databases (and more) with application.properties
  6. How Spring Boot compares to plain Spring

07 Spring Boot: Internals  Scrambled

  1. What is this module about?
  2. Spring Boot AutoConfiguration: Behind the scenes
  3. How to build your own AutoConfigurations
  4. What you learned in this module

08 Spring Data JDBC  Scrambled

  1. What is this module about?
  2. How to setup Spring Data JDBC
  3. How to write repositories and queries with Spring Data JDBC
  4. How the Spring Data projects compare

09 Fin  Scrambled

  1. A couple of last words