Thursday, May 14, 2026

Introduction To Spring Framework

1.0 What is an application framework?

An application framework is a set of reusable components and functionalities that simplifies software development by removing the need for developers to build applications from scratch.

When developing applications, you usually distinguish between boilerplate code and business code.

  • Boilerplate code handles common technical needs shared by many applications, such as error logging, transaction management, security, inter-system communication, and performance optimizations such as caching and data compression. Synonims of boilerplate code are: plumbing code, framework code and infrastructure code.
  • Business code implements the use cases and specific requirements of an application—what users expect the application to do. It is what makes one application different from another.

A framework lets developers focus on business code by providing reusable solutions for common technical needs, reducing the amount of infrastructure code that must be written and maintained.

2.0 Spring as a collection of frameworks

Spring is a collection of frameworks and libraries, not just a single framework; therefore we say that Spring is an ecosystem.

The most common modules in the Spring Framework ecosystem are:

  • Spring Core – the foundational module that provides essential capabilities, including:

    • Spring Context – manages the lifecycle and configuration of objects (beans)
    • Spring AOP (Aspect-Oriented Programming) – intercepts and modifies method execution
    • Spring Expression Language (SpEL) – provides an expression language used in configuration and annotations
  • Spring MVC (Model-View-Controller) – provides the components needed to build web applications and RESTful web services.

  • Spring Data Access – provides support for working with relational databases and data access technologies.

  • Spring Testing – provides tools for writing and running tests for Spring applications.