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.
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
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:
- Writing code became more and more complex, as developers had to draw on countless XML files and work with several different types of configurations.
- Components proved exceeedingly frustrating to work with, as developers had to hard-code all the dependencies each componetent required.
- 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
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
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
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!
Opinions expressed by DZone contributors are their own.