A Short History of Spring
Spring started in 2003 as a reaction to the complexity of early J2EE.
Introduction
Spring started in 2003 as a reaction to the complexity of early J2EE. Rod Johnson's book argued that you should be able to build serious enterprise applications without inheriting from framework classes or running on a heavyweight server. The companion code became the Spring Framework.
Over the next two decades Spring grew into an ecosystem: Spring Security, Spring Data, Spring Batch, Spring Integration, Spring Cloud, and — most famously — Spring Boot, which made starting a new project a one-minute job.
Knowing the timeline is not trivia: it explains why two Spring codebases can look like different languages.
Understanding the topic
Key milestones to remember:
- 2003 — Spring 1.0, XML-driven IoC container.
- 2006–2009 — Annotations replace most XML; AOP matures; Spring MVC ships.
- 2014 — Spring Boot 1.0; convention over configuration goes mainstream.
- 2017 — Spring 5 adds reactive support (WebFlux, Project Reactor).
- 2022+ — Spring 6 / Boot 3, baseline Java 17, native images via GraalVM, observability built-in.
Syntax reference
How the same bean was declared across the eras:
<!-- 2004: XML era --><bean id="clock" class="java.time.Clock" factory-method="systemUTC"/>// 2010: Java config era@Configurationclass TimeConfig {@Bean Clock clock() { return Clock.systemUTC(); }}// 2014+: Boot era — often nothing to write; a starter auto-configures it@SpringBootApplicationpublic class App { public static void main(String[] a) { SpringApplication.run(App.class, a); } }
Real-world use
Knowing this timeline helps you read older codebases: an XML-heavy module is usually pre-2010, annotation-driven Java config is post-2010, and a Boot-style starter is post-2014. You will inherit all three in any large company.
Hands-on exercise
Reflection: open the GitHub repository of any Spring library and look at its first commit and its latest release. Identify which configuration style each version uses. Write a one-paragraph note on what changed and why.