Book Information


Authors: Craig Walls, Ryan Breidenbach
Paperback: 472 pages
Publisher: Manning Publications (February 11, 2005)
Language: English
ISBN: 1932394354
Product Dimensions: 9.3 x 7.4 x 0.9 inches Link

 Book Review

Introduction and Target Audiences:

Spring In Action by Manning Publications is a book written with a sole aim of making the usage of Spring easier for the developers. It not only caters to the advance requirements of the user but also act as an excellent literature for the beginners. Although its content says much regarding the needs of both first-timers as well as advanced users but the book targets mainly people who wants to use Spring in their J2EE applications for an easy development process. Using Spring in the Enterprise Java development not only makes the application development easier but also more efficient for the programmer. Proving its worth further this book also emerges to be a good resource for web-developers. Its literature along with the well-supported examples provides the necessary help to the users going for web-based applications.


Organization of book:

Keeping in view the differences in technical knowledge as well as requirements of the reader author had beautifully divided the book into three parts. It contains 11 chapters which had been categorically distributed into three parts with each part comprising of chapters dealing with some common areas related to Spring. These parts had been written and divided in such a way that if one intends to read these parts in a one-by-one flow, he can very well take the advantage of easy blending and simple flow of the book whereas the book also provides a good opportunity to the advanced learner who can directly pick the related topic from anywhere in the book and use it with an equal ease as that of the beginner. Author had very easily made this modular aspect of the book as an eye-catching thing for the readers and hence making the book useful for everyone.

The book starts with Part 1, the first chapter of which gives the reader a brief overview of Spring and its related modules along with focusing on the important concept of inversion of control. Apart from this the introductory chapter also gives the reader a know-how of applying aspect-oriented programming concepts in their applications. Elevating the need as well as importance of Spring author discusses various Spring alternatives present in the J2EE world and compares them with Spring. Next the book speaks about the wiring of beans in second chapter. Here the readers get a good chance to enhance as well as gather knowledge about Spring’s bean related concepts. Chapter three focuses mainly on the aspect-oriented programming fundamentals and how it makes the applications much cleaner.

Second Part of the book feeds the reader with information on how to apply the IoC and AOP concepts to the business layer of the application. It extensively says about Spring’s support for data access object. Usage of JDBC with Spring is also taken into account by the author. Hibernate framework along with its integration with Spring, topics like JDO, its configuration as well as SQL Maps are also discussed. Apart from this the book also takes care of some Transaction Management aspects of Spring in the next chapter. Under this integration of spring with different transaction managers, programmatically transaction management, trimming of transaction declarations etc had been thoroughly described.

Author had done his homework well before explaining issues related to remoting and accessing of enterprise services in the next two chapters. He had not only focused on simple issues like Remote Method Invocation but had also explained critical issues like task scheduling and sending of messages with an equal expertise. Keeping up with its modular aspect the book’s next part speaks of Spring in web layer of the applications. As with the previous two parts here also the author had talked very straight forwardly and his to-the-point approach is worth seeing.

The later part of the book shows how Spring can bind web parameters to your business objects including the mapping as well as handling of requests to Spring controllers. This chapter also tells you how you can validate form submissions as well as handle exceptions while working with the web applications. Talking about the templating languages author does not stop at velocity and FreeMarker only but also goes ahead in explaining the generation of PDF and Excel files in this chapter.

Last two chapters of the book discuss how to integrate Spring with other web frameworks and the application of security to your web applications. Author gives a good feed to the developers on how they can develop web applications using Spring in a variety of ways including spring’s MVC framework or a third-party web framework. Struts, Tapestry, JavaServer Faces, and WebWork are some of the popular frameworks which had been talked about. Lastly inorder to let your application survive in a secure environment some security aspects had also taken into account. Apart from telling you how you can make your web applications more secure it also refer to Spring’s AOP support to provide method-level security in your applications. The book ends with references to several other open source frameworks related to Spring giving its readers their last knowledge bite.


In this book the author had captured as well as divided the requirements in such a way that not only the beginners, moving on to a new part of the book based on the knowledge gained from earlier parts, finds it interesting but also the advanced developers directly landing into any part seeking some reference finds it quite helpful.In this way he maintains a classic balance between his readers’ diverse requirements as well as flow of the book. This proves to be an eye-catching point for the readers who can easily relate their requirements with the book irrespective of its complexity level.

 Table of Contents


    1. Chapter 1 A Spring jump start

      • Why Spring?
      • What is Spring?
      • Spring jump start
      • Understanding inversion of control
      • Applying aspect-oriented programming
      • Spring alternatives.

    1. Chapter 2 Wiring beans

      • Containing your beans
      • Basic wiring
      • Autowiring
      • Working with Spring’s special beans.

    1. Chapter 3 Creating aspects

      • Introducing AOP
      • Creating advice
      • Defining pointcuts
      • Creating introductions
      • Using ProxyFactoryBean
      • Autoproxying Autowiring


    1. Chapter 4 Hitting the database

      • Learning Spring’s DAO philosophy
      • Using JDBC with Spring
      • Introducing Spring’s ORM framework support
      • Integrating Hibernate with Spring
      • Spring and JDO
      • Spring and iBATIS
      • Spring and OJB.

    1. Chapter 5 Managing transactions

      • Understanding transactions
      • Programming transactions in Spring
      • Declaring transactions
      • Declaring transactions by method name
      • Declaring transactions with metadata
      • Trimming down transaction declarations

    1. Chapter 6 Remoting

      • Spring remoting overview
      • Working with RMI
      • Remoting with Hessian and Burlap
      • Using Http invoker
      • Working with EJBs
      • Using JAX-RPC web services

    1. Chapter 7 Accessing enterprise services

      • Retrieving objects from JNDI
      • Sending e-mail
      • Scheduling tasks
      • Sending messages with JMS.


    1. Chapter 8 Building the web layer

      • Getting started with Spring MVC
      • Mapping requests to controllers
      • Handling requests with controllers
      • Resolving views
      • Using Spring’s bind tag
      • Handling exceptions

    1. Chapter 9 View layer alternatives

      • Using Velocity templates
      • Working with FreeMarker
      • Designing page layout with Tiles
      • Generating non-HTML output

    1. Chapter 10 Working with other web frameworks

      • Working with Jakarta Struts
      • Working with Tapestry
      • Integrating with JavaServer Faces
      • Integrating with WebWork

    1. Chapter 11 Securing Spring applications

      • Introducing the Acegi Security System
      • Managing authentication
      • Controlling access
      • Securing web applications
      • Securing method invocations

    1. Appendix A : Spring setup

      • A.1 Downloading Spring
      • A.2 Choosing a distribution
      • A.3 Setting up your project
      • A.4 Building with Ant

    1. Appendix B : Spring-related projects

      • B.1 AppFuse
      • B.2 Rich Client Project
      • B.3 Spring.NET
 Overview of Chapters

Part 1: Spring essentials

    1. Chapter 1: A Spring jump start

      • What is Spring?
      • What are the different Spring modules.
      • The concept of inversion of control.
      • How to apply aspect-oriented programming in your application.
      • What are the various Spring alternatives present in the J2EE world.

    1. Chapter 2. Wiring beans

      • How you can separate a document into parts.
      • How do you go for containing the beans.
      • What is Wiring and how you can use it for building a basic application.
      • How you can wire all of your bean’s properties automatically.
      • How you can work with Spring’s special beans.

    1. Chapter 3: Creating aspects

      • AOP fundamentals and how AOP can help you write cleaner applications.
      • How do you create an advice object.
      • How can you define a pointcut in Spring.
      • How can you create introductions.
      • How can you use ProxyFactoryBean.
      • How you can enable the container to generate proxies for you.

Part 2: Spring in the business layer

    1. Chapter 4: Hitting the database

      • Spring’s DAO (data access object) support.
      • How to use use JDBC with Spring.
      • How you can integrate Hibernate framework with Spring.
      • What is JDO and how you can configure it.
      • How you can set up SQL Maps.
      • What is ObJectRelationalBridge and how to set up OJB’s PersistenceBroker.

    1. Chapter 5: Managing transactions

      • How you can integrate spring with different transaction managers.
      • How you can manage transaction programmically.
      • How to use spring’s declarative transactions.
      • How to describe transactions using annotations.
      • How you can Trim down transaction declarations.

    1. Chapter 6: Remoting

      • How you can access and expose RMI services.
      • How to work with Remote Method Invocation (RMI).
      • How to enable lightweight remote services over HTTP using using Caucho’s Hessian and Burlap protocol.
      • How to use Spring’s Http invoker.
      • How to use spring with web services.

    1. Chapter 7: Accessing enterprise services

      • How you can access JNDI resources.
      • How you can send and format email.
      • How you can Schedule tasks using Java’s scheduler.
      • How you can send messages with Java Messaging Service.

Part 3: Spring in the web layer

    1. Chapter 8: Building the web layer

      • How you can map requests to Spring controllers.
      • How you can handle requests with controllers.
      • How you can resolve various views.
      • How you can validate form submissions.
      • How to handle exceptions.

    1. Chapter 9: View layer alternatives

      • How you can use velocity templates.
      • How you can work with FreeMarker.
      • How you can design page layout with Tiles.
      • How to working with Jakarta Tiles.
      • How you can generate PDF and Excel files.

    1. Chapter 10: Working with other web frameworks

      • How to develop web applications using Spring in a variety of ways including spring’s MVC framework or a third-party web framework.
      • How to integrate Spring into several prevalent MVC frameworks.
      • How you can use Spring with Jakarta Struts.
      • How to work with Tapestry framework.
      • How to work with JavaServer Faces.
      • How you can integrate Spring with WebWork framework.

    1. Chapter 11: Securing Spring applications

      • How you can provide security for your Springbased applications using Acegi Security System.
      • How to dermine whether a user should be granted access to a secured resource.
      • How you can secure web applications.
      • How Acegi you enables you to secure your applications without writing any security code directly into your application code.
      • How you can use Spring’s AOP support to provide method-level security.