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  

117.  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 create simple and complex Web applications. 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 not 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.

 

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:  3 days. For less experienced Java programmers who nonetheless meet the stated prerequisites, a 4-day timeline may be appropriate, to give some background on Java web applications and some breathing room around the later lab exercises.

 

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.      The Business Tier

Complex Systems

Assembling Object Graphs

Dependency Injection

Single and Multiple Relationships

Autowiring

Bean Aliases

Order of Instantiation

Validation

Nested Properties

 

4.      The Web Tier

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

 

5.      Controllers and Commands

Working with Forms

Command Objects

The Template Method Pattern

Command Controllers

Data Binding

MultiActionController

Scope and Granularity of Command Objects

 

6.      Working with Forms

Property Editors

Validating Form Input

Form Controllers

AbstractFormController

SimpleFormController

Spring Custom Tags

<form:form> and Friends

<form:errors>

Reporting Errors

 

7.      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"

 

8.      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.