Skip to main content

What is Spring?

The Spring Framework is an open-source application framework providing comprehensive infrastructure support for developing enterprise-level Java applications.

Released initially by Rod Johnson in 2003, Spring aims to simplify the complex and cumbersome nature of early enterprise Java development by relying on core design patterns like Inversion of Control (IoC) and Dependency Injection (DI).

Key Characteristics

  1. Lightweight: The basic version of the Spring Framework is roughly 2MB in size. It imposes very little overhead on the application.
  2. Modular Architecture: Spring is divided into approximately 20 modules. You only include the modules you actually need (e.g., if you don't need a Web interface, you do not import spring-webmvc).
  3. POJO-Based: Spring advocates programming using Plain Old Java Objects (POJOs), eliminating the need to inherit from specialized framework base classes or interfaces.
  4. Testing Friendly: Because classes contain independent POJOs without deep container dependencies, unit testing is highly straightforward using tools like JUnit and Mockito.