Spring is a lightweight framework for building Java applications. You can use Spring to build any application in Java (for example, stand-alone, web, or JEE applications), unlike many other frameworks (such as Apache Struts, which is limited to web applications).
Overview of the Spring Framework
Spring Core: Bean container and supporting utilities. The Core component is the most important component of the Spring Framework. This component provides the Dependency Injection features. The BeanFactory provides a factory pattern that separates the dependencies like initialization, creation and access of the objects from your actual program logic.
Spring Context: ApplicationContext, UI, validation, JNDI, Enterprise JavaBeans (EJB), remoting, and mail support
Spring DAO: Transaction infrastructure, Java Database Connectivity (JDBC), and data access object (DAO) support
Spring ORM: Hibernate, iBATIS, and Java Data Objects (JDO) support
Spring AOP: An AOP Alliance compliant aspect-oriented programming (AOP) implementation. Spring AOP is used for providing declarative enterprise services, especially as a replacement for EJB declarative services. The most important such service is declarative transaction management, which builds on Spring’s transaction abstraction. To allow users to implement custom aspects, complementing their use of OOP with AOP
Spring Web: Basic integration features such as multipart functionality, context initialization through servlet listeners, and a web-oriented application context
Spring Web MVC: Web-based Model-View-Controller (MVC) framework