Académique Documents
Professionnel Documents
Culture Documents
In this series of spring tutorials, its provides many step by step examples and explanations on
using Spring framework.
The Spring framework , created by Rod Johnson, is an extremely powerful Inversion of
control(IoC) framework to helps decouple your project components dependencies.
On Oct 2002- The first version released on book (Expert One-on-One J2EE Design and
Development) by Rod Johnson.
On Jun 2003- Take license from Apache and First released as a Framework.
On Jan 2006- Won the two awards Jolt productivity award and JAX Innovation Award.
On Oct 2006- Spring 2.0 released.
On Nov 2007- Spring 2.5 released.
On Dec 2009 - Spring 3.0 released.
On Dec 2011- Spring 3.1 released.
On Jun 2012- Spring 3.2 released.
What is Spring?
Spring is great framework for development of Enterprise grade applications. Spring is a lightweight framework for the development of enterprise-ready applications. It provides very simple
and rich facilities to integrate various frameworks, technologies, and services in the applications.
One of the main reason for using the Spring framework is to keep code as simple as possible. It
push the way to develop enterprise applications with loosely coupled simple java beans. For this
reason, the spring framework can also be called a Plain Old Java Object (POJO) framework.
Spring is an open-source framework developed by Spring Source, a division of VMware. Spring
frame work can summarized in two ways.
classpath. The Spring Container takes the classes in the application, creates objects, and
manages the life cycle of those objects.
Data Access Using Java Database Connectivity (JDBC): The Spring framework provides a rich
support for working with JDBC. A typical JDBC code involves plumbing works, such as creating
connection, statements, executing queries and handling exceptions for performing database
operations.Spring framework provides a set of classes that take care of these core JDBC
operations.
Data Access Using Object Relational Mapping (ORM): There are lots of ORM frameworks,
such as Hibernate, Toplink, iBatis etc that can be used in Java Applications. Spring framework
provides lots of classes that makes working with ORM is very easy.
Aspect Oriented Programming (AOP): One of the main paradigms that spring uses to provide
enterprise services for your applications is AOP. AOP is a mechanism by which you can
introduce functionality in your existing code without modifying your design. In short we can say
AOP is used to weave cross-cutting functionalities or aspects into the code. The Spring
framework uses AOP provides various enterprise services such a transaction and security in an
application.
Core Spring Framework: The Core package is the most fundamental part of the framework and
provides the IoC and Dependency Injection features. The basic concept here is the
BeanFactory, which provides a sophisticated implementation of the factory pattern which
removes the need for programmatic singletons and allows you to decouple the configuration and
specification of dependencies from your actual program logic.
Spring's MVC: Spring 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.
Object XML Mapping: Spring 3.0 introduces the OXM module that was earlier not a part of the
core framework. OXM is a mechanism that marshals or converts object into the XML format and
vice versa. There are lots of OXM frameworks, such as Caster, Xstream, JiBX, Java API for
XML Binding(JAXP), and XMLMeabs. Spring 3.0 provides a uniform API to access any of
these OXM frameworks for marshalling and unmarshalling object and XML.
Dependency Injection (DI): The technology that Spring is most identified with is the
Dependency Injection (DI) flavor of Inversion of Control. The Inversion of Control (IoC) is a
general concept, and it can be expressed in many different ways and Dependency Injection is
merely one concrete example of Inversion of Control.
What is dependency injection exactly? Let's look at these two words separately. Here the
dependency part translates into an association between two classes. For example, class X is
dependent on class Y. Now, let's look at the second part, injection. All this means is that class Y
will get injected into class X by the IoC. Here we don't need to write lots of code to create the
instance of the dependent classes.
Dependency injection promotes loose coupling . It paves the way for the removal of the usal
factory and utility classes that we write in our applications.
Look Following:
The DAO classes use Data Sources which can be injected into them
Dependency Injection is also known as Inversion of Control or IoC. Ioc refers to the control of
creating instances being done by the Spring Container. The control for creating and constructing
objects is taken care by the container. The container creates objects and injects then into our
applications.
Spring is organized in a modular fashion. Even though the number of packages and
classes are substantial, you have to worry only about ones you need and ignore the rest.
Spring does not reinvent the wheel instead, it truly makes use of some of the existing
technologies like several ORM frameworks, logging frameworks, JEE, Quartz and JDK
timers, other view technologies.
Spring's web framework is a well-designed web MVC framework, which provides a great
alternative to web frameworks such as Struts or other over engineered or less popular
web frameworks.
Spring provides a consistent transaction management interface that can scale down to a
local transaction (using a single database, for example) and scale up to global transactions
(using JTA, for example).