Course Description

This course provides students with the knowledge needed to use the Spring Framework and SpringSource Tool Suite to develop flexible, testable and maintainable Java EE enterprise applications. This course covers v3.0 of the Spring Framework.


Upon completion of this course, you should be able to:

  • Understand the need for the Spring framework
  • Use inversion of control to increase flexibility and testability of applications
  • Understand and use aspect-oriented programming to better handle cross-cutting concerns
  • Integrate Spring with the Hibernate and JPA ORM frameworks
  • Declaratively and programmatically manage transactions in Spring
  • Use the Spring MVC web framework to develop flexible web applications
  • Use Spring in web service applications
  • Access enterprise services including JMS, email, job schedulers and JNDI


  • The Need for Spring
  • Inversion of Control
  • Wiring Beans
  • Database Integration and Transaction Management
  • Aspect-Oriented Programming in Spring
  • Spring MVC
  • Spring Web Services
  • Accessing Enterprise Services



5 days


Target Audience

Software designers, developers and programmers


Course Prerequisites

To succeed fully in this course, students should be able to Program Java applications – Course GTJ01 Introduction to Java Using Eclipse meets this requirement


Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please contact us for further details.


Course Content

Chapter 1. Introduction to the Spring Framework

What is the Spring Framework?

Spring Philosophies

Why Spring?

Spring Modules

Requirements and Supported Environments

Using Spring with Servers

Role of Spring Container

Spring Example

Avoiding Dependency on Spring

Additional Spring Projects/Frameworks

Chapter 2. Spring 3 Development Tools

SpringSource Tool Suite

Developing Spring 3 Applications With RAD

Sequence of Installation for Spring/RAD/WebSphere

Alternatives to RAD for Spring/WebSphere Development

Creating a Spring Project

Tools for Spring Beans Configuration Files

Spring Configuration Validation

Spring Web Flow Definition Tools

Maven Overview

Managing Spring JARs with Maven

Adding Maven Dependencies

Chapter 3. Defining and Using Spring Beans

Spring “Beans”

Spring Containers

Instantiating the Spring Container

Retrieving Spring Beans

Configuring Spring Beans

<bean> Element

Naming Beans

Setting Bean Properties

Using the Spring XML ‘p’ Schema

Creating Beans with a Constructor

Resolving Constructor Ambiguity

Setting Properties vs. Invoking Constructors

Bean Scope

Effect of Bean Scope on Instances

Chapter 4. Advanced Spring Bean Configuration

Defining Beans with Annotations

Component Stereotype Annotations

Spring Component Annotations

Bean Scope with Annotations

Configuring Classpath Scanning for Spring Beans

Choosing Which Annotations to Use

Overriding Annotation Configuration with XML

Externalizing Bean Configuration



Inheriting Bean Configuration

Lazy Initialization

Declaring Beans from Static Fields

Declaring Beans from Object Properties

Chapter 5. Spring Dependency Injection

Dependency Injection

Benefits of Dependency Injection

Specifying Bean References

Constructor Injection

Constructor vs. Setter Injection

Injecting Multivalued Properties

Other Multivalued Types

Specifying the Data Type of Collections

Defining Collections Using Utility Factory Beans

Defining a Reusable Properties From an External File

Bean Scope Effect on Dependency Injection

Autowiring With XML

Autowiring Example

Errors in Autowiring

Excluding a Bean from Autowiring

Autowiring Multivalued Properties

Mixing Explicit and Autowiring

Chapter 6. Spring Dependency Injection with Annotations

Dependency Injection Annotations

@Autowired and @Inject

Locations for @Autowired and @Inject

Autowiring Multivalued Properties

Autowiring by Bean Name with @Resource

Injecting Named Collections Defined in XML with @Resource

Checking Required Dependencies

Enforcing Required Properties with XML Autowiring

Multiple @Autowired Constructors

Multiple Autowiring Matches

Qualifiers with Annotation-based Autowiring

Adding a Qualifier Value to a Bean Definition

Qualification of Multivalued Properties

Defining Custom @Qualifier Annotations

Complex Custom @Qualifier Annotations

Associating Custom Bean Qualifiers with XML

Processing Injection Annotations

Overriding Annotation Injection

Chapter 7. Testing Spring Applications

Spring Unit Testing

Configuring Test Projects

Spring TestContext Framework

Implementing Test Classes

Loading Spring Configuration with Test Classes

Accessing Spring Components Within Test Classes

Defining Tests to Execute

Isolating Tests Which Modify the Spring Environment

Transactional Testing Support

Transactional Test Base Classes

Avoiding False Positives with ORM Testing

Other Transaction Annotations

Other Spring Annotations for JUnit

Unit Testing Support Classes

Mock Objects

Chapter 8. Alternate Configuration

Java @Configuration Classes

Defining @Configuration Classes

Loading @Configuration Classes

Modularizing @Configuration Classes

Qualifying @Bean Methods

Trouble with Prototype Scope

Configuration with Spring Expression Language

Resolving Text Messages

Spring Property Conversion

Spring Converter Interface

Using Custom Converters

Spring PropertyEditors

Registering Custom PropertyEditors

Chapter 9. Overview of Spring Database Integration

DAO Support in Spring

Spring Data Access Modules

Spring JDBC Module

Spring ORM Module


@Repository Annotation

Using DataSources

DAO Templates

DAO Templates and Callbacks

ORM Tool Support in Spring

Chapter 10. Using Spring with JPA or Hibernate

Spring ORM

Benefits of Using Spring with ORM

Spring @Repository

Using JPA with Spring

Configure Spring JPA EntityManagerFactory

Using JNDI to Lookup JPA EntityManagerFactory



Application JPA Code


Hibernate Session Factory

Spring LocalSessionFactoryBean

Application Hibernate Code

“Classic” Spring ORM Usage

Spring JpaTemplate

Spring JpaCallback

JpaTemplate Convenience Features

Spring HibernateTemplate

Spring HibernateCallback

HibernateTemplate Convenience Methods

Chapter 11. Spring JDBC Support

Spring JDBC Support

Main Spring JDBC Classes

Spring JdbcTemplate Class

Writing Data with JdbcTemplate

Reading Data with JdbcTemplate

Reading Single-Row Scalar Data

Spring NamedParameterJdbcTemplate



Chapter 12. Introduction to Aspect-Oriented Programming

What is AOP?

Cross-Cutting Concerns

AOP Concepts

AOP in Spring

Chapter 13. Spring Transaction Management


Spring Transaction Module

Transaction Management in Spring

Spring Transaction Managers

Integrating Spring Transactions with Java Enterprise Servers

Transaction Propagation Behavior

Transaction Isolation Levels

Read-Only and Timeouts

Default Transaction Settings

Declarative Transactions in Annotations

Spring XML Syntax for Transaction Advice

Programmatic Transactions

Transaction Rollback

Proxying Classes

Chapter 14. @AspectJ AOP with Spring

Spring AspectJ AOP


Aspects in @AspectJ

Pointcuts in @AspectJ

execution Pointcut

Composite Pointcuts in @AspectJ

Before Advice in @AspectJ

After Returning Advice in @AspectJ

After Throwing Advice in @AspectJ

After (Finally) Advice in @AspectJ

Around Advice in @AspectJ

Introductions in @AspectJ

Accessing Parameters in @AspectJ

Determining Parameter Names in @AspectJ

Advice Ordering in @AspectJ

XML Schema-based AOP Support

Declaring Pointcuts

Before Advice in XML Syntax

After Returning Advice in XML Syntax

Introductions in XML Syntax

Advisors in XML Syntax

Chapter 15. Using JSF with Spring

JSF Integration Options




Spring Bean Scopes


JSF with Spring Web Flow

Chapter 16. Spring MVC

Spring MVC

Spring Web Modules

Spring MVC Components


Context Loaders

Spring MVC Example

Spring MVC Mapping of Requests

Advanced @RequestMapping

Spring MVC Annotation Controllers

Controller Handler Method Parameters

Controller Handler Method Return Types

View Resolution





Using Multiple View Resolvers

Spring Form Tags

form and input Tags

password and hidden Tags

checkbox Tag

radiobutton Tag

textarea Tag

select Tag

option Tag

options Tag

errors Tag

Chapter 17. Introduction to Spring Web Flow 2

What is Spring Web Flow 2?

Benefits of Spring Web Flow 2

Relationship to Spring and Spring MVC

Spring Web Flow 2 Modules

Expression Language

Integration Support

What is a Flow?

Book Hotel Flow Example

Book Hotel Flow Definition

Configure web.xml

Spring Web Flow Components

Sample Spring Web Flow Configuration File

Chapter 18. Spring Security

Securing Web Applications with Spring Security 3.0

Spring Security 3.0

Authentication and Authorization

Programmatic v Declarative Security

Getting Spring Security from Maven

Spring Security Configuration

Spring Security Settings in Spring Configuration

Basic Web Security Configuration

Granting Anonymous Access to Pages and Resources

Requiring Encrypted HTTPS Communication

Customizing Form-based Login

Custom Login Page

Configure Logout

Session Management

Selectively Display Links in a JSP

Method Level Security

Authentication Manager

Using Database User Authentication

LDAP Authentication

Encoding Passwords

Using an External Authentication Provider

Chapter 19. Spring JMS

Spring JMS


Connection and Destination

JmsTemplate Configuration

Transaction Management

Example Transaction Configuration

Producer Example

Consumer Example

Converting Messages

Message Listener Containers

Message-Driven POJO’s Async Receiver Example

Message-Driven POJO’s Async Receiver Configuration

Chapter 20. Implementing Web Services with Spring

Web Services in Spring Applications

Spring Web Service Options

Injecting Spring Components Into Web Service Classes

Using Spring with JAX-WS Web Services

Extending the SpringBeanAutowiringSupport Class

Using a @PostConstruct Initialization Method

Combining @PostConstruct and @Autowired

Comparing Third Party Frameworks with Spring-WS

Chapter 21. Spring REST Services

Many Flavors of Services

Understanding REST

RESTful Services

REST Resource Examples


REST Services With Spring MVC

Spring MVC @RequestMapping with REST

Working With the Request Body and Response Body

Implementing JAX-RS Services and Spring

JAX-RS Annotations

Java Clients Using RestTemplate

RestTemplate Methods

Chapter 22. Spring JMX

JMX in Spring

Exporting Spring beans as JMX MBeans

Spring JMX Example

Accessing Remote JMX MBeans in Spring (JSR-160 Connectors)

Publish and Receive JMX Notification

Listener for JMX Notifications

Chapter 23. Review of New Features in Spring 3.0

Requirements and Supported Environments

Using Spring with Servers


Spring Expression Language

Java-based Configuration

Annotation-based Configuration

Spring MVC Changes

New Spring MVC Configuration

Spring MVC Annotation Example



See more WebSphere courses