DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • Actuator Enhancements: Spring Framework 6.2 and Spring Boot 3.4
  • Structured Logging in Spring Boot 3.4 for Improved Logs
  • Querydsl vs. JPA Criteria, Part 6: Upgrade Guide To Spring Boot 3.2 for Spring Data JPA and Querydsl Project
  • Upgrade Guide To Spring Boot 3.0 for Spring Data JPA and Querydsl

Trending

  • Power BI Embedded Analytics — Part 2: Power BI Embedded Overview
  • What Is Plagiarism? How to Avoid It and Cite Sources
  • Docker Model Runner: Streamlining AI Deployment for Developers
  • Secure by Design: Modernizing Authentication With Centralized Access and Adaptive Signals
  1. DZone
  2. Coding
  3. Frameworks
  4. Spring and Spring Boot Frameworks: A Brief History

Spring and Spring Boot Frameworks: A Brief History

We take a look at the history of Spring, the rise of Spring Boot, and where this Java framework is headed.

By 
Jordan Baker user avatar
Jordan Baker
·
Sep. 17, 19 · Presentation
Likes (6)
Comment
Save
Tweet
Share
36.4K Views

Join the DZone community and get the full member experience.

Join For Free

Initially launched in 2002, Spring and the various frameworks built on top of it, such as Spring Boot, have come to dominate the way Java developers write code. The developer Rod Johnson came up with the idea of Spring in 2002. The following year, Jonhnson, along with Juergen Hoeller and Yann Caroff, developed Spring as an open source framwork. They created Spring in order to make Java server-side development easier and to allow dev teams to more quickly create their applications. Given that Spring finished as the fourth 'Most Loved Framework' in Stack Overflow's 2019 developer survey, I'd say they succeeded.

The Spring Framework: Why it Was Made

What is the Spring Framework?
You might use and love Spring, but do you know why Rob Johnson created it?

Prior to Spring, Java developers relied on traditional Java EE to create their applications. As outlined by this excellent Quora post, this led to three main problems:

  1. Writing code became more and more complex, as developers had to draw on countless XML files and work with several different types of configurations.
  2. Components proved exceeedingly frustrating to work with, as developers had to hard-code all the dependencies each componetent required.
  3. All of Java EE's features were supported, and thus needed to be configued. This led to very bloated code that slowed down applications.

These were the problems Spring hoped to address.

In the book where Rod Johnson originally laid out the programming concepts that led to the Spring framework, he called for greater use of dependency injection and POJOs. Throughout his work, Johnson wrote some 30,000 lines of code to demonstrate how this could work in Java EE. Once his book released, he, Hoeller, and Caroff began working on their own framework that could incorporate these ideas. Thus Spring was born.

Originally released under the Apache license as Spring 0.9, developers quickly took up this new framework. By the time Johnson et al released Spring 1.0 the following year, they already had a burgeoning developer community on their hands. In all the releases since, the team of developer's behind the Spring framework have tried to make Spring easier and more fun to work with. To that end, in 2014, the Spring team realeased their next hit, Spring Boot.

The Spring Boot Framework

Spring Boot Framework
How 'bout Them Spring Boots?

In 2012, an issue was filed on the Spring GitHub repo title, "Improved support for 'containerless' web applicaiton architectures." The issue's athor, Mike Youngstrom, wrote that "Traditionally Spring web applications have been embedded in a servlet container. This was useful in the past when the majority of enterprise applications ran in and depended on the servlet container for deployment and configuration. However, a servlet container comes with learning curve that we cannot assume new developers will have already overcome."

His solution? Make it easier.

"I think that Spring's web application architecture can be significantly simplified," Youngstrom went on, "if it were to provide tools and a reference architecture that leveraged the Spring component and configuration model from top to bottom. Embedding and unifying the configuration of those common web container services within a Spring Container bootstrapped from a simple main() method."

If you scroll down a bit on this repo page, you come to Phil Webb's comments. Mr. Webb, it just so happens, was a member of the Spring team. On August 6, 2013, Phil wrote, "Rather than fix this as part of the core Spring Framework we have decided to start a new project called Spring Boot that addresses this and a number of other issues." Phil Webb went on to co-create Spring Boot.

So, it seems we can safely say that Spring Boot came about as way to make architecting and developing web applications with Spring more approachable. According to Spring Boot's README on GitHub, it "makes it easy to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opionated view of the Spring platform so that new and existing users can quickly get to the bits they need."

Spring Boot's easy to use nature has led to rapid and widespread adoption. According to JetBrains's 2019 Developer Ecosystem survey, 56% of those surveyed said they use the Spring Boot framework when developing web applications, an increase of 14% over their previous year's survey. Additionally, 61% of respondents told JetBrains that they use Spring Boot as an alternative to application servers. 

Spring Tutorials and Spring Boot Tutorials

Spring and Spring Boot Tutorials
Ready to Sharpen Those Digital Pencils and Get to Coding?

Now that you know the history of these frameworks are you ready to dive into some code? We've put together some of the best tutorials on DZone about Spring and Spring Boot in a few handy resources. Happy coding!

  1. Put a Spring in Your Step: Spring Framework Tutorials

  2. All About Spring Boot [Tutorials and Articles]

  3. Small Boots, Small Services: Spring Boot Microserivces [Tutorials and Articles]

Spring Framework Spring Boot Framework History (command)

Opinions expressed by DZone contributors are their own.

Related

  • Actuator Enhancements: Spring Framework 6.2 and Spring Boot 3.4
  • Structured Logging in Spring Boot 3.4 for Improved Logs
  • Querydsl vs. JPA Criteria, Part 6: Upgrade Guide To Spring Boot 3.2 for Spring Data JPA and Querydsl Project
  • Upgrade Guide To Spring Boot 3.0 for Spring Data JPA and Querydsl

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: