CHAPTER 1
Introducing Spring
When we think of the community of Java developers, we are reminded of the hordes of gold rush prospectors
of the late 1840s, frantically panning the rivers of North America, looking for fragments of gold. As Java
developers, our rivers run rife with open source projects, but, like the prospectors, finding a useful project
can be time-consuming and arduous.
A common gripe with many open source Java projects is that they are conceived merely out of the need
to fill the gap in the implementation of the latest buzzword-heavy technology or pattern. Having said that,
many high-quality, usable projects meet and address a real need for real applications, and in the course of
this book, you will meet a subset of these projects. You will get to know one in particular rather well—Spring.
The first version of Spring was released in October 2002 and consisted of a small core with an inversion
of control (IoC) container that was easy to configure and use. Over the years Spring has become the main
replacement of Java Enterprise Edition (JEE) servers and has grown into a full-blown technology made up of
many distinct projects, each with its own purpose, so whether you want to build microservices, applications,
or classical ERPs, Spring has a project for that.
Throughout this book, you will see many applications of different open source technologies, all of
which are unified under the Spring Framework. When working with Spring, an application developer can
use a large variety of open source tools, without needing to write reams of code and without coupling an
application too closely to any particular tool.
In this chapter, as its title indicates, we introduce you to the Spring Framework, rather than presenting
any solid examples or explanations. If you are already familiar with Spring, you might want to skip this
chapter and proceed straight to Chapter 2.
What Is Spring?
Perhaps one the hardest parts of explaining