Saturday, February 23, 2013

Spring Introduction

Introduction
Spring is a light-weight open source framework. Its initially written by Rod Johnson. Spring enables you to develop applications using POJOs. This got a laryered structure, so that you can choose to use any part of it as an isolation.
Spring Includes
  1. An IOC Light weight Container
  2. AOP Functionality
  3. Abstraction Layer for JDBC/Transaction management
  4. Web Integration Layer
  5. MVC Web Application Framework
Spring Modules
The following are the modules in Spring Architecture
spring-modules

Each of the Components can stand on its own or can be implemented jointly one or more jointly. The functionality of each component is as follows:
  1. Core: This is the basic component in the framework. It has the features of IoC and Dependency Injection. It provides a basic Container called BeanFactory. 
  2. AOP: It introdues aspect oriented programming feature in the Spring framework. Spring-AOP addresses the cross-cutting functionality. 
  3. DAO: This package supports both programmatic and declarative approaches to manage transactions. These can be used to add transaction capability not only for classes implementing special interfaces, but for all ordinary POJOs (plain old Java objects).
  4. ORM: The ORM package provides integration layers for popular object-relational mapping APIs such as JPA, JDO, Hibernate, and iBatis. Using the ORM package you can use these frameworks in combination with all the other features Spring offers, such as the simple declarative transaction management feature.
  5. Enterprise Integration: This package provides an integration layer for popular enterprise services including several remoting technologies, EJB, JMS, JMX, e-mail, and scheduling.
  6. Web Framework Integration: Spring’s Web package provides integration layer for popular web frameworks such as WebWork, Struts, JSF etc. It also provides features such as multipart file-upload functionality, initialization of the IoC container using servlet listeners and a web-oriented application context.