Spring is an open-source application framework, introduced and developed in 2004. The main ideas were suggested by an experienced J2EE architect, Rod Johnson

The Spring framework is a MVC Architecture for building Web applications. Its pluggable MVC architecture provides options for the developers to use the builtin Spring Web framework or an existing Web framework such as Struts, Saveria etc. Spring accommodates multiple view technologies such as JSP technology, Velocity, Tiles etc. Even, Spring framework is highly configurable because of its strategy interfaces.

Spring Salient Features

Spring stresses the OO design issues rather than focusing on the implementation aspects of a technology, such as J2EE. And above all, the application code does not depend on the Spring APIs unlike the EJB that force to use JNDI and the Struts that force to extend Action. Spring promotes the easy implementation of JEE technology. It aims to simplify the JEE development and testing. Spring’s functionality can be used in any JEE server.

Spring focuses on interface-oriented programming rather than keeping it class-centric. Spring reduces the complexity cost of using interfaces to zero.

Unlike java, Spring framework avoids the overuse of the checked exceptions by allowing a user not to catch exceptions.

Testability is an essential feature provided in Spring that helps to test the user code very easily.

Spring does not attempt to do everything itself but
supports the best breed of technologies, For instance...
it supports several persistence technologies like JDO,
Hibernate and OJB as these ORM tools are highly

Spring offers a great way of configuring applications
through JavaBeans. Programmers find it easy to work
with these standard JavaBeans naming convention.

Spring Flexibility issues that distinguishes it from other JEE Frameworks

Spring focuses on the reusability of business and data access objects (by not keeping them specific to any of the JEE services and environments like web, EJB etc).
  It keeps them loosely coupled.

In addition to classic OOP, Spring uses AOP(Aspect-Oriented Programming) which is a very recent and useful paradigm to promote the separation of concerns within a system. Hence it makes Spring highly flexible.

Spring’s goal is to emerge as an entire Application Framework. Other popular frameworks like Struts, Tapestry, JSF etc., are very good web tier frameworks but when we use these framework, we have to provide additional framework to deal with enterprise tier that integrates well with these framework. Spring tries to alleviate this problem by providing a comprehensive framework, which includes a core bean container, an MVC framework, an AOP integration framework, a JDBC integration framework and an EJB integration framework.

Sometimes it is not possible to completely switch to a different framework. Spring does not force to migrate completely rather it allows to perfectly integrate with the existing technologies. Spring provides various readymade adapters for various hot web-tier and presentation technologies. For example, there exists a variety of technologies in the web-tier like STRUTS, JSF, MVC PATTERN, WEB-WORK, TAPESTRY, FREEMARKER, JSP etc. Developers are often puzzled and confused about the relative merits and demerits of all these. Once they choose a technology and start implementing and later want to change over to another technology, it is very difficult. Spring offers various modules supporting a different technology, it just requires to change the configuraion file. With this approach, it is even possible for a development team to try and test a given task in all the above forms and see the effect and performance before deciding the choice. Spring offers its own version of MVC architecture. It also offers adapters for Struts.

Spring provides proxying for RMI (special remoting technologies like Burlap) JAX-RPC & web-service. Spring makes use of Acegi, an open-source Security framework and provides declarative security through its configuration file.

Spring provides abstraction layers for JDBC (which
simplifies the error handling strategy to a great extent)
and transaction management (allows to add the pluggable transaction managers and easily demarcate the transactions without dealing with low-level issues). Spring’s transaction support is not tied to JEE environments
and it can also be used in container-less environments.

Spring MVC separates the roles of the controller, the model object, the dispatcher, and the handler object, which makes them easier to customize. This MVC framework is designed around a DispatcherServlet that dispatches
July 2007 | Java Jazz Up | 22
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 ,            Download PDF