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
BeanFactoryand 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
javaxnamespace onto the modernjakartanamespace 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.