Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
P. 1
Spring Framework Tutorial

Spring Framework Tutorial

|Views: 236|Likes:
Published by Ankit Jain

More info:

Published by: Ankit Jain on Sep 21, 2012
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less





Spring Framework Tutorial
Spring framework is an open source Java platform that provides comprehensive infrastructure support fordeveloping robust Java applications very easily and very rapidly.Spring framework was initially written by Rod Johnson and was first released under the Apache 2.0 license inJune 2003.This tutorial has been written based on Spring Framework version 3.1.0 released in Dec 2011.Spring is the most popular application development framework for enterprise Java. Millions of developersaround the world use Spring Framework to create high performing, easily testable, reusable code.Spring framework is an open source Java platform and it was initially written by Rod Johnson and was firstreleased under the Apache 2.0 license in June 2003.Spring is lightweight when it comes to size and transparency. The basic version of spring framework is around2MB.The core features of the Spring Framework can be used in developing any Java application, but there areextensions for building web applications on top of the Java EE platform. Spring framework targets to makeJ2EE development easier to use and promote good programming practice by enabling a POJO-basedprogramming model.
Benefits of Using Spring Framework:
Following is the list of few of the great benefits of using Spring Framework:
Spring enables developers to develop enterprise-class applications using POJOs. The benefit of usingonly POJOs is that you do not need an EJB container product such as an application server but you havethe option of using only a robust servlet container such as Tomcat or some commercial product.
Spring is organized in a modular fashion. Even though the number of packages and classes aresubstantial, 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 likeseveral ORM frameworks, logging frameworks, JEE, Quartz and JDK timers, other view technologies.
Testing an application written with Spring is simple because environment-dependent code is moved intothis framework. Furthermore, by using JavaBean-style POJOs, it becomes easier to use dependencyinjection for injecting test data.
Spring's web framework is a well-designed web MVC framework, which provides a great alternative toweb frameworks such as Struts or other over engineered or less popular web frameworks.
Spring provides a convenient API to translate technology-specific exceptions (thrown by JDBC,Hibernate, or JDO, for example) into consistent, unchecked exceptions.
Lightweight IoC containers tend to be lightweight, especially when compared to EJB containers, forexample. This is beneficial for developing and deploying applications on computers with limitedmemory and CPU resources.
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).
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 waysand Dependency Injection is merely one concrete example of Inversion of Control.When writing a complex Java application, application classes should be as independent as possible of other Javaclasses to increase the possibility to reuse these classes and to test them independently of other classes whiledoing unit testing. Dependency Injection helps in gluing these classes together and same time keeping themindependent.What is dependency injection exactly? Let's look at these two words separately. Here the dependency parttranslates into an association between two classes. For example, class A is dependent on class B. Now, let's look at the second part, injection. All this means is that class B will get injected into class A by the IoC.Dependency injection can happen in the way of passing parameters to the constructor or by post-constructionusing setter methods. As Dependency Injection is the heart of Spring Framework, so I will explain this conceptin a separate chapter with a nice example.
 Aspect Oriented Programming (AOP):
One of the key components of Spring is the
Aspect oriented programming (AOP)
framework. The functionsthat span multiple points of an application are called
cross-cutting concerns
and these cross-cutting concernsare conceptually separate from the application's business logic. There are various common good examples of aspects including logging, declarative transactions, security, and caching etc.The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. WhereasDI helps you decouple your application objects from each other, AOP helps you decouple cross-cuttingconcerns from the objects that they affect.The AOP module of Spring Framework provides aspect-oriented programming implementation allowing you todefine method-interceptors and pointcuts to cleanly decouple code that implements functionality that should beseparated. I will discuss more about Spring AOP concepts in a separate chapter.
Spring Framework Architecture
Spring could potentially be a one-stop shop for all your enterprise applications, however, Spring is modular,allowing you to pick and choose which modules are applicable to you, without having to bring in the rest.Following section gives detail about all the modules available in Spring Framework.The Spring Framework provides about 20 modules which can be used based on an application requirement.
Core Container:
The Core Container consists of the Core, Beans, Context, and Expression Language modules whose detail is asfollows:
module provides the fundamental parts of the framework, including the IoC and DependencyInjection features.
module provides BeanFactory which is a sophisticated implementation of the factory pattern.
module builds on the solid base provided by the Core and Beans modules and it is amedium to access any objects defined and configured. The ApplicationContext interface is the focalpoint of the Context module.

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
murthy_oct24 liked this
Ankit Jain liked this
Arun Karunagath liked this
Ricardo Elias liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->