The Spring Framework is an open source application framework and inversion of control container for the Java platform.
The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform.
Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for,
or even addition to the Enterprise JavaBean (EJB) model (Wikipedia / Spring Framework).
A key element of Spring is infrastructural support at the application level: Spring focuses on the “plumbing” of enterprise applications
so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.