This book covers most of the feature set of Spring 1.2.
You will learn:
What Spring offers. Spring has a large feature set: We guide you through the features and show how they form a coherent whole.
Why Spring does what it does. We discuss the motivation behind many Spring features and the rationale for Spring's approach.
When to use Spring features, and about best practices when using Spring.
We cover the following areas of Spring, with the background discussion necessary to put the Spring functionality in context:
The core Inversion of Control container and the concept of Dependency Injection that underpins it. Spring's lightweight container provides sophisticated configuration management, and a flexible backbone within which other services can be used.
Spring's Aspect-Oriented Programming (AOP) framework and why AOP is important in J2EE development. Together with Spring's Dependency Injection capabilities, Spring AOP enables a POJO programming model, in which application code has minimal dependencies on Spring APIs, even when it enjoys Spring services.
Spring's approach to service abstraction, and the goals it achieves.
Transaction management: Core concepts, Spring's programmatic and declarative transaction management services, and how to use them effectively.
Data access using Spring: You'll see how Spring provides a sophisticated, consistent abstraction over a variety of popular data access technologies. We'll look in detail at how to access data using Spring's JDBC functionality, iBATIS SQL Maps, and the Hibernate O/R mapping framework. You will gain a solid conceptual understanding of Spring data access that is applicable to other supported persistence APIs such as TopLink.
Spring's MVC web framework. Three chapters provide in-depth information about the motivation for Spring's MVC framework, how it compares with other popular web application frameworks such as Struts, and how to use it in scenarios from basic to advanced. You will also see how to use Spring MVC to generate custom content types.
Spring services for exposing and accessing remote services. Spring provides a unique remoting framework that works over a variety of protocols, but is entirely POJO-based.
Spring services for accessing and implementing EJBs.
Spring services relating to JMS.
Spring's integration with the open source Quartz scheduler and other popular open source and commercial products.
How Spring can be used in the design and implementation of a complete application, through our sample application.
Effective testing strategies for Spring applications. One of the major advantages of a sophisticated Dependency Injection container is that it can enable effective unit testing of application code; Spring goes a step further by providing powerful integration testing features that also don't require a container, significantly increasing the speed of develop-test cycles.
Throughout, we discuss best practices. Sophisticated frameworks such as Spring inevitably allow multiple ways to achieve the same end; we try to provide guidance as to how to make the best choice.
We also help you understand how Spring can provide a basis for a clean, layered architecture, and how appropriate use of Spring facilitates good OO design and architectural practice.