Search This Blog

Tuesday, November 27, 2007

What Is Spring?

In the world of technology so may frame-works are coming and it’s a big question in front of us that which one is better.To solve this query I tried explaining frame-work in short. So, let’s start with Spring frame-work

Spring is an open-source framework, and to Put simply, Spring is a
lightweight inversion of control and aspect-oriented container
framework.
Okay, that’s not so simple a description. But it does summarize
what Spring does. To make more sense of Spring, let’s break this description down:


Lightweight—Spring is lightweight in terms of both size and overhead.
The entire Spring framework can be distributed in a single JAR file that
weighs in at just over 1 MB. And the processing overhead required by
Spring is negligible. What’s more, Spring is nonintrusive: objects in a
Spring-enabled application typically have no dependencies on Springspecific
classes.

Inversion of control—Spring promotes loose coupling through a technique
known as inversion of control (IoC). When IoC is applied, objects are passively
given their dependencies instead of creating or looking for dependent
objects for themselves. You can think of IoC as JNDI in reverse—
instead of an object looking up dependencies from a container, the container
gives the dependencies to the object at instantiation without waiting
to be asked.

Aspect-oriented—Spring comes with rich support for aspect-oriented programming
that enables cohesive development by separating application
business logic from system services (such as auditing and transaction management).
Application objects do what they’re supposed to do—perform
business logic—and nothing more. They are not responsible for (or even
aware of) other system concerns, such as logging or transactional support.

Container—Spring is a container in the sense that it contains and manages
the life cycle and configuration of application objects. You can configure
how your each of your beans should be created—either create one single
instance of your bean or produce a new instance every time one is needed
based on a configurable prototype—and how they should be associated
with each other. Spring should not, however, be confused with traditionally
heavyweight EJB containers, which are often large and cumbersome
to work with.

Framework—Spring makes it possible to configure and compose complex
applications from simpler components. In Spring, application objects are
composed declaratively, typically in an XML file. Spring also provides
much infrastructure functionality (transaction management, persistence
framework integration, etc.), leaving the development of application logic
to you.


All of these attributes of Spring enable you to write code that is cleaner, more
manageable, and easier to test. They also set the stage for a variety of subframeworks
within the greater Spring framework.

No comments: