Tuesday, 30 September 2014

What is Spring Framework and its advantages & features


What is Spring Framework?
  • Spring is a multi-tier open-source lightweight application framework.
  • It addresses most infrastructure concerns of enterprise applications.
  • It is mainly a technology dedicated to enable us to build applications using POJOs (Plain Old Java Objects). This includes a well designed and managing java objects.

What are the key advantages of Spring Framework ?

Spring framework is a complete enterprise application framework with multiple benefits.The following few are the key benefits:
  • Spring is a Lightweight container
  • It address issues of the business tier
  • Spring framework provides perfect support for write code that is easy to test.
  • Spring framework provides a great support for integration with various technologies of java in creating enterprise application.
  • It avoids implementing many design patterns such as Single Pattern and Factory by providing a built in solution for these patterns.
  • It can eliminate the need to use a variety of custom properties file formats., by handling Configurations in a consistent way throughout the application.
  • It provides a simple set of Annotations of easy Configuration of the system from the web presentation to the data access layer.
  • Not required special deployment steps

What are the features of Spring ?

Following are the few of the important features if spring framework:

Lightweight: Spring framework provides the enterprise level services simplifying creating java enterprise applications. This is lightweight when it comes to size and transparency. The processing overhead in using Spring Framework services is also very negligible.

IOC (Inversion of Control) Container: This provides a loose coupling between the objects in the system, simplifying wiring the system.

Aspect Oriented(AOP): Spring supports Aspect Oriented Programming that enables convenient development by separating application business logic from system services.

Web MVC Framework: Spring framework includes a web MVC framework simplifying developing web MVC applications in java, this is highly configurable via strategy interfaces and supports integrating with multiple view technologies like JSP. Velocity, Tiles, iText and POI.

Transaction Management: Spring framework provides a simple unified abstraction layer for accessing the transaction services from different environments such as JTA, Hibernate, JDBC, JPA. This also support declarative transaction service similar to the Java EE, EJB.

JDBC Abstraction Framework: The JDBC abstraction layer of the Spring simplifies implementing the DAOs using jDBC by providing a built-in solution for problems like Code duplication, Resource handling and Exception handling where it can convert the SQLException into meaningful exception hierarchy simplifying the error handling strategy.

Integration with Hibernate, JDO and iBATIS: Spring provides best way of integrating with data access technologies such as Hibernate, JPA, JDO and iBATIS.


Spring Remoting: Spring includes a support for integrating with various Remoting technologies such as RMI, Hessian, Burlap and JAX-RPC. In addition this includes its own remoting service to suite with few architectures.