Over the last decade, Spring Framework has become the dominant framework in the Java community. But what has led to the rise of Spring Framework. In this post, we will investigate the factors that led to its immense success.

But let’s first start with the basic question.

What is Spring Framework?

That’s the million dollar question, right?

For a newbie starting out, it might be daunting to understand what exactly is Spring? Also, why it is even needed for building enterprise applications?

Let’s try to answer these questions.

Spring is a framework. It is also a Java platform that provides infrastructure support for developing Java applications. In other words, Spring helps you build applications using plain old java objects or POJOs.

Sounds neat! But maybe, not that useful.

One of the first questions that pops to mind is this – what exactly is a framework?

A framework is something that provides a standard way to do certain things. If you consider the task of constructing a car, a framework can be thought of as the frame of a car. In other words, the structure or skeleton that helps in building the car.

In software terms, the same applies to building and deploying software applications. Basically, a framework is a reusable software environment that tries to solve certain problems. And in the process, it facilitates development of software applications.

Over the years, Spring has become so popular that it has become the de-facto framework for building large enterprise applications.

However, Spring is also much more than a framework. It is a complete ecosystem of supporting frameworks and tools required to build complex applications. It provides support for various things every enterprise application needs. For example, connecting to a database, managing services, security, logging and so on.

Reason for Spring

Spring was not the first framework trying to solve the problems around building enterprise Java applications.

J2EE or Java Enterprise Edition that preceded Spring tried to do the same thing. On paper, J2EE was meant to become the standard way of building Java enterprise applications. In other words, it was supposed to be the game-changer in terms of overall architecture.

The major guiding principle behind J2EE was to provide clean separation between various parts of an application.

Everything sounded quite promising with J2EE. However, when it came to actually implementing things using J2EE, everything wasn’t so rosy. Some of the major problems with J2EE were in regards to EJB or Enterprise Java Beans.

  • Early versions of EJB were extremely complex to work with.
  • It required multiple deployment descriptors.
  • It required multiple interfaces. For example, to implement a single bean you need to have Home interface, Component interface and some more Java files.
  • Performance wasn’t that great.

The Birth of Spring

Due to these problems, there was discontent among developers with regards to EJB and J2EE. EJB became that bad uncle in the family that you want to avoid because they mess up everything. It basically fell out of favor. That’s when Spring came in.

Rod Johnson, the founder of Spring, started on this journey to create an alternative to J2EE. This led to the birth of Spring Framework.

history of spring framework

If you see the above timeline, Spring started in 2004. Just before that, 2001-2003 was the period during which everyone became fed up with EJB. The launch of Spring coincided with the worst phase in EJB implementation.

It really took over the developer community and everyone started moving to Spring.

However, the guys at Sun Microsystems (the creators of Java and J2EE) took note of the rise of Spring. They tried to understand the reasons behind the declining popularity of J2EE. And they also realized that the EJB implementation was the major problem.

So they actually went back and re-engineered EJB. In other words, they made it simpler to use. This coincides with Java EE5 release in 2006. Since then, J2EE has steadily improved with every new version.

Practically speaking, at this point of time, both Spring and J2EE are pretty equal in terms of features. You can basically do the same thing with both the frameworks. However, the J2EE folks were slightly slow to solve the problems and the earlier problems with EJB had tarnished the image of J2EE forever.

However, during this time, Spring has gone from strength to strength. It has gathered a tremendous amount of momentum in the industry and the developer community.

Benefits of Learning Spring

The greatest benefit of learning Spring framework is the vast job market that can open up for you. The framework’s popularity has grown over the last decade and any respectable Java setup would have migrated or looking to migrate to Spring.

The framework has also grown with constant releases and updates. There has been an addition of new features. There have been game-changing upgrades such as Spring Boot. You can read more about Spring Boot here.

Currently, the core framework is maintained by Pivotal Software. There is a huge amount of official documentation. However, there is also a ton of community support.

Some very good design principles form the foundation of Spring framework. Therefore, knowing Spring framework definitely enhances your knowledge about those principles as well.

So, in general, Spring framework is here to stay. And learning it is a pretty good investment of your time.

Do share your thoughts about this in the comments section. Or you can read more about Spring Boot (the revolutionary way of working with Spring framework) over here.


Saurabh Dashora

Saurabh is a Software Architect with over 12 years of experience. He has worked on large-scale distributed systems across various domains and organizations. He is also a passionate Technical Writer and loves sharing knowledge in the community.

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *