The Core package is the most fundamental part of the  framework and provides the IoC and Dependency Injection features. 
    The Context package build on the solid base provided by the  Core package: it provides a way to access objects in a framework-style manner  in a fashion somewhat reminiscent of a JNDI-registry. 
    The DAO package provides a JDBC-abstraction layer that  removes the need to do tedious JDBC coding and parsing of database-vendor  specific error codes. 
    The ORM package provides integration layers for popular  object-relational mapping APIs, including JPA, JDO, Hibernate, and iBatis.
    Spring's AOP package provides an AOP Alliance-compliant  aspect-oriented programming implementation allowing you to define, for example,  method-interceptors and pointcuts to cleanly decouple code implementing  functionality that should logically speaking be separated. 
    Spring's Web package provides basic web-oriented integration  features, such as multipart file-upload functionality, the initialization of  the IoC container using servlet listeners and a web-oriented application  context. 
    Spring's MVC package provides a Model-View-Controller (MVC)  implementation for web-applications. Spring's MVC framework is not just any old  implementation, it provides a clean separation between domain model code and  web forms, and allows you to use all the other features of the Spring  Framework.