Spring is an open source framework created to address the complexity of enterprise application development. One of the best advantages of the Spring framework is its layered architecture, which allows you to be selective about which of its components you use while also providing a cohesive framework for J2EE application development.
Spring is lightweight when it comes to size and transparency. The basic version of spring framework is around 1MB. The processing overhead is also very negligible and also spring contains and manages the life cycle and configuration of application objects.
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.
Spring is something universal and it is covering all kind of topics which are available in java. For example Spring IOC for object injection, ORM tool support for Database connectivity, Spring MVC for MVC architecture, Spring Quartz, Spring AOP for transactions and spring aspects for logging etc..
Will try to cover some modules with example here...