Spring Logo
Image from Spring Webpage

This is the overview page for a series of tutorials on the Spring Framework.

So what is the Spring Framework? In case you have been living under a rock the last several years I will describe the fundamentals of Spring. For those that already know what Spring is and just want to get started with the tutorials can jump ahead.

The Spring Framework was originally conceived by Rod Johnson in 2002 while writing a book about J2EE design patterns. Rod had been working in J2EE projects from the beginning, and was part of the expert group behind some of the specifications in J2EE. Probably motivated by some of the cumbersome features of J2EE he proposed several simplified design patterns in his book, which he exemplified with a complete Java library released with the book. This library was the inception of the Spring Framework.

As said, originally the Spring Framework was made to overcome some of the difficulties of designing Java enterprise software. It was more focused on conversion over configuration, and hiding more of the grueling design decisions by taking some of them for you, based on the best practices that had been identified in enterprise application architecture. Because of this Spring is a more opinionated framework than J2EE and later Java EE, but on the other hand it solves many of the issues related to design, architecture and configuration management that plagued other frameworks.

Today the Spring Framework is many things, comprised of a whole range of modules, but at its core is an Inversion of Control (IoC) container. The main task of the container is to control the lifecycle of managed Java beans (Spring Beans), which is the sentral building block for Spring applications. The container can also hold configuration and application state though it's application context.

The Spring Framework started out as one fat JAR file. Over the years Spring has been split into a set of modules, with a very clear separation of concerns. This tutorial series will look at many if not all of these modules, and give examples on how to use them in your application.
Spring Runtime
Image from Spring Docs


  1. Spring Core
    1.1. Spring Context and Beans
    1.2. Spring Configuration
    1.3. Spring Configuration Values
    1.4. Spring Dependency Injection
  2. Spring Web
    2.1. Spring Web Servlet
    2.2. Spring Web MVC
    2.3. Spring Web MVC REST
    2.4. Spring Web Flow
  3. Spring Common
    3.1. Spring Transaction Management
    3.2. Spring Aspects
  4. Spring Data Access
    4.1. Spring JDBC
    4.2. Spring ORM
  5. Spring Integration
    5.1. Spring Messaging
    5.2. Spring Web Services
  6. Spring Security
    6.1. Spring Authentication
    6.2. Spring Authorization
  7. Other
    7.1. Spring Boot
    7.2. Spring Roo
    7.3. Spring Batch
    7.4. Spring Test