Skip to main content

Evolution and Release Timeline

Since its inception, Spring has fundamentally shifted paradigms multiple times to adapt to modern engineering requirements.

Major Release Timeline​

  • Spring 1.0 (2004): Introduced the core BeanFactory and Inversion of Control (IoC). Configuration was strictly handled via massive XML files (applicationContext.xml).
  • Spring 2.0 (2006): Introduced XML namespaces and the concept of Aspect-Oriented Programming (AOP).
  • Spring 2.5 (2007): A major milestone. Introduced completely annotation-driven configuration (e.g., @Component, @Autowired), drastically reducing XML bloat.
  • Spring 3.0 (2009): Fully embraced Java 5. Added comprehensive support for RESTful Web Services within Spring MVC.
  • Spring 4.0 (2013): Brought full support for Java 8 features (Lambdas, Date/Time APIs) and introduced conditional bean creation.
  • Spring 5.0 (2017): Introduced Spring WebFlux, a non-blocking reactive web framework supporting asynchronous programming structures.
  • Spring 6.0 (2022): Mandated an upgrade to Java 17 baseline. Migrated entirely off the legacy javax namespace onto the modern jakarta namespace due to Oracle licensing changes.

The Shift from XML to Annotations​

While studying legacy systems, you will often encounter beans.xml files dictating every class mapping. Modern Spring entirely deprecates this manual approach, relying on Auto-Scanning and specialized annotations (@Service, @Repository) to scan directories automatically.