Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

117A.  The Spring Framework

Rev. 2.0.1

 

This course is now available directly from our partner, Capstone Courseware.

This course enables the experienced Java developer to use the Spring Application Framework to manage objects in a lightweight "IoC" (inversion-of-control) container; to create simple and complex Web applications; and to manage persistent objects using Spring's support for DAOs and transaction control. Spring is a far-reaching framework that aims to facilitate all sorts of Java development, including every level of multi-tier distributed systems. Here we focus on the Core and MVC modules, with a lighter (but by no means dismissive) touch on persistence through DAO and ORM modules.

 

The Core module gives the developer declarative control over object creation and assembly; this is useful for any tier of any Java application. So is Spring's validation framework, and so we study these things in a mix of standalone (J2SE) applications and Web applications deployed to the Tomcat server/container. Then students build Web applications that use the Spring MVC framework to rationalize their designs into coherent request/response cycles. They use Spring command objects to manage HTML forms and their data, and connect these to the validation framework. We connect our applications to persistent stores and study the DAO and ORM modules, to better understand JDBC and Hibernate persistence models and declarative transaction control.

 

This course is a variant of Course 117. To serve a range of audiences who are interested in different parts of the Spring framework and who have different backgrounds, we're maintaining three variants. Course 117 covers the same basic material but has a few less code exercises and follows a more aggressive, three-day timeline. Course 117B has the additional exercises and more relaxed pace found in this course, but de-emphasizes the Web module for a three-day timeline as well.

 

LEARNING OBJECTIVES

 

·         Understand the scope, purpose, and architecture of Spring

·         Use Spring's Inversion of Control to declare application components, rather than hard-coding their states and lifecycles

·         Use Dependency Injection to further control object relationships from outside the Java code base

·         Create validators for business objects, and associate them for application-level and unit-testing uses

·         Build a Web application as a Spring DispatcherServlet and associated application context, with declared beans acting as controllers, command objects, and view resolvers

·         Build and manage HTML forms with Spring command objects and custom tags

·         Use Spring interceptors to implement horizontal features in the Web application

·         Connect business objects to persistent stores using Spring's DAO and ORM modules

 

Course Duration:  4 days.

 

Prerequisites: 

·         Java programming – Object Innovations Course 103 is excellent preparation.

·         Servlets programming – Course 110

·         JSP – Course 112

·         Basic knowledge of XML – Course 501

 

1.      Overview

Web Applications

J2EE: The Good, The Bad, and the Ugly

Enter the Framework

Spring Modules

Controlling Object Creation

Web Applications

Persistence Support

Aspect-Oriented Programming

Integrating Other Frameworks

 

2.      Core Techniques

Component-Based Software

JavaBeans, Reconsidered

The Factory Pattern

Inversion of Control

XML View: Declaring Beans

Java View: Using Beans

Singletons and Prototypes

Initializing Bean State

 

3.      Dependency Injection

Complex Systems

Assembling Object Graphs

Dependency Injection

Single and Multiple Relationships

The Utility Schema

Autowiring

Bean Aliases

Order of Instantiation

 

4.      Validation

Validators

The Errors Object

ValidationUtils

Error Messages and Localization

Nested Property Paths

 

5.      The Web Module

Servlets and JSPs: What's Missing

The MVC Pattern

The Front Controller Pattern

DispatcherServlet

A Request/Response Cycle

The Strategy Pattern

JavaBeans as Web Components

Web Application Contexts

Handler Mappings

"Creating" a Model

View Resolvers

 

6.      Customizing Spring MVC

HandlerMapping Options

ViewResolver Options

Chaining View Resolvers

Triggering Redirects

 

7.      Controllers and Commands

Working with Forms

Command Objects

The Template Method Pattern

Command Controllers

Data Binding

MultiActionController

Scope and Granularity of Command Objects

 

8.      Web Binding and Validation

Property Editors

Custom Property Editors

Registrars

Validating Form Input

 

9.      Form Controllers

Form Controllers

AbstractFormController

SimpleFormController

Spring Custom Tags

<form:form> and Friends

<form:errors>

Reporting Errors

 

10. Refining the Handling Cycle

The Intercepting Filter Pattern

Exception Handling

Interceptors

The Decorator Pattern

Context and Lifecycle

Awareness Interfaces

Support and Utility Classes

"Death By XML"

 

11. The Persistence Tier

The DAO Pattern

The DaoSupport Hierarchy

The DataAccessException Hierarchy

JDBC DAOs

JdbcTemplate and RowMapper

Object/Relational Mapping

Hibernate DAOs

Transaction Control

AOP vs. Annotations

 

Appendix A.  Learning Resources

 

System Requirements

 

Hardware – minimal:                     500 MHz, 256 meg RAM, 500 meg disk space

 

Hardware – recommended:           1.5 GHz, 512 meg RAM, 1 gig disk space.

 

Operating system:                          Tested on Windows XP Professional. Course software should be viable on all systems which support a J2SE 5.0 JDK.

 

Software:                                       All free downloadable tools.