Spring is a light-weight framework that is used for the development of Enterprise-ready applications. The architecture of Spring forms a layered architecture having seven modules. All modules are built over core container.
Spring allows a programmer to use components/modules which are required and eliminate others that are not needed by the application. Its modular architecture enables integration with other frameworks easy.
Spring can be used to remotely access logic using RMI or web services. It can be used for mailing facilities as well.
Seven Modules in the Spring Architecture are:
Spring AOP: provides declarative enterprise services, which act as a replacement for EJB declarative services. It also allows users to implement custom aspects, complementing their use of OOP with AOP.
Spring ORM:- provides integration layers for object-relational mapping APIs, including JDO, Hibernate and iBatis.
Spring Web: is part of web application development stack.
Spring DAO:- (Data Access Object) standardizes the data access work using JDBC, Hibernate or JDO.
Spring Context: package is built on beans modules and is used to access any object defined and configured. It allows application objects to obtain resources using a consistent API.
Spring Web MVC: provides the MVC implementations for the web applications.
Spring Core: component provides the Dependency Injection features. It contains BeanFactory module, which separates the dependencies from actual program logic.