The Spring framework is a huge framework with several modules. The first version of the framework was released in 2003, and since then, there have been four major releases delivering new and enhanced features. Currently, Spring is the de facto enterprise framework that's used, perhaps more widely than the de jure standard EJB 3.0.
Spring supports dependency injection, Aspect-Oriented Programming (AOP), and persistence for SQL and NoSQL databases in a conventional manner and also the Object Relational Mapping way. It has transactional support, messaging, web programming, and many other features. You can configure it using XML configuration files, annotations, or by using Java classes.