Spring framework was Rod Johnson’s idea that he developed in 2002. Together with Yann Caroff and Juergen Hoeller, Johnson developed Spring as an open-source framework in June 2003 under the Apache 2.0 license. The first production release was later released on 24th March 2004. Since then, the framework and other frameworks built on top of it like spring boot have developed to dominate how java developers program. Spring is arguably the most popular application development framework within the Java developer community.
The framework was created to ease server-side java development and allow the java developer community to develop their applications more quickly. In the 2019 Stack Overflow developer survey, Spring finished the 4th most loved framework.
Why Was Spring Framework Created?
Before Spring, the Java developer community solely relied on the traditional Java EE to develop applications. However, this practice led to three main issues:
- Since all Java EE features were supported, they needed to be configured. The result of this was a bloated code that made the application slower.
- It increased the complexity of writing code because the developers had to draw on many XML files while working on various configurations.
- Since the Java developers were hard-coding all the dependencies required by each component, it was highly frustrating to work with components.
The objective of Spring was to address and resolve the issues above. Rod Johnson advocated for a more significant application of POJOs and dependency injection in the original text laid out the programming concepts. In his work, Johnson wrote about 30 000 lines of code, demonstrating how the concept may work in Java Enterprise Edition.
Spring Framework’s Rapid Growth
Since its release in 2004, Spring has seen rapid growth. By the time spring 2.0 was released in October 2006, the framework’s downloads were over 1 million. This version of Spring had the following features; Supported Java 5, Featured extensible XML configuration that made it simple to configure XML, had support for dynamic languages like groovy, had extra IoC container extension points, new bean scopes, and AOP enhancements.
In November 2007, interface21, a company managing the Spring projects under Johnson’s leadership, changed its name to SpringSource. Spring 2.5 was also released at the same time. It included Java EE5/Java 6, OSGi compliant bundles, support for annotation configuration, and component autodetection in the classpath.
SpringSource secured funding from benchmark capital in 2007 and later in 2008 also raised additional capital from benchmark and accel partners. In August 2009, VMware acquired SpringSource for $420 million, and SpringSource acquired a PaaS service provider, cloud foundry.
Spring 3.0 was released to the public in December 2009. It had features like support for the spring expression language, reorganized module system, JavaConfig, REST support/model validation, supported embedded systems like Derby, HSQL, and H2.
Spring 4.0 was released to the public in December 2013. It was a huge step ahead for the spring framework, and its features included total support for Java 8 higher third-party dependencies (Ehcache 2.1, groovy 1,8, and hibernate 3.6). It also had java EE7 support, support for Java EE 7, WebSocket, groovy DSL for the definition of beans. Since then, Spring has seen many developments in features and support.
in October 2012, a feature request was created in Spring Jira by Mike Youngstrom, requesting support in containerless web application architecture using the spring framework. Mike talked about configuring the web container services inside a spring container bootstrapped from its main method. The request led to the release of spring boot 1.0.0 in April 2014. There have been minor spring boot releases since then.
Spring boot 1.1 was released in June 2014 and had gunfire support, improved templating support, apache solar, and auto-configuration for elastic search. In march 2015, Spring boot 1.2 was released. There were upgrades to spring 4.1, tomcat 8/servlet 3.1/Jetty 9, and the support for JMS/ banner/ SpringBoot Application annotation.
Spring boot 1.3 was released in December 2016 that saw the upgrade of the spring framework from 4.1 to 4.2, totally executable jar support, incorporation of new spring-boot-dev tools, and auto-configuration for caching technologies(Redis, guava, infinispan, hazelcast, and Ehcache). Spring boot has also seen yearly upgrades and improved versions from previous years.
Java is among the most prominent programming languages among developers. However, developing applications using the language has seen tremendous changes since the release of spring boot. Today, Java application developers can build robust applications within a short time, thanks to Spring and spring boot. We can only expect the frameworks to continue improving and getting new features to ensure easy and timely development.