Complete Spring Framework 4


Duration Three Days


Duration: 3 Days


It could be argued that the Spring Framework has impacted Java and the open source community more than any other framework – ever.  It is often referred to as a “defacto-standard” in the Java and Java EE development community.

In this class, students are exposed to the light-weight Spring container, configuration, foundational API, and general Spring architecture.  Not just a class that focuses on theory, this course is loaded with practical labs and deals with configuration, maintenance and architectural issues.  After taking this class, developers will immediately be able to utilize the Spring Framework (version 4) in their new or existing applications.

Learning Objectives

  •  Learn how to configure the Spring Framework as part of your project.
  •  Explore the Spring Container and Modules.
  •  Discover the Spring philosophies and principles and how they impact application development.
  •  Understand dependency injection.
  •  Explore how to define and wire Spring beans.
  •  Learn aspect oriented programming and how it is used to provide cross cutting concerns.
  •  See how to accomplish data access with Spring’s DAO support modules.
  •  Understand how Spring deals with transaction management.
  •  Examine Spring’s unit testing framework.


This class is designed for Java programmers with a need to understand the basic Spring Framework and API. 


Students should have a good understanding of the Java programming language.  A basic understanding of relational databases and SQL is very helpful.  A basic understanding of XML is also useful.  Students that have attended Intertech’s Complete Java have the necessary background for this course.

Course Outline

Spring Overview

  •  What is Spring
  •  Why use Spring
  •  Spring Philosophy
  •  Spring Architecture
  •  Spring Modules
  •  Setup Spring
  •  A First Spring Application

Dependency Injection

  •  Spring Containers
  •  Bean Definitions
  •  Property Injection
  •  Collection/Array Wiring
  •  P-namespace
  •  Null Wiring
  •  Constructor Injection
  •  Large Configuration Files


  •  Autowiring
  •  Autowiring Collections
  •  Pros and Cons of Autowiring
  •  Container Extension Points
  •  BeanPostProcessors
  •  BeanFactoryPostProcessors
  •  PropertyPlaceholderConfigurer

Autowire with Annotations

  •  @Required
  •  @Autowired
  •  JSR-250 Annotations
  •  JSR-330 Annotations
  •  Spring Expression Language (SpEL)

Defining Beans without XML

  •  Stereotype Annotations
  •  Annotating Components
  •  Composed Stereotypes
  •  Meta Annotations
  •  Java Configuration Annotations
  •  Conditional Bean Configuration
  •  Generic Qualifiers for Wiring
  •  Mixing XML and Configuration Classes
  •  XML, Annotations & Spring

Data Conversion

  •  PropertyEditors
  •  Custom PropertyEditors
  •  Type Conversion System

Aspect Oriented Programming

  •  Cross Cutting Concerns
  •  AOP Terminology
  •  Spring’s AOP
  •  AOP Setup
  •  Aspects
  •  Advice
  •  Pointcuts
  •  Advice Parameters and Ordering
  •  Advisors

AOP with AspectJ

  •  @Aspect
  •  Pointcuts and Advice
  •  Advice Parameters and Ordering
  •  Introductions
  •  Pros and Cons of XML schema-based vs. @AspectJ annotations
  •  Load-time Weaving

Data Access Support

  •  Data Access
  •  Exception Handling
  •  Data source configuration
  •  Templating
  •  JDBC Templates
  •  Callbacks
  •  NamedParameterJdbcTemplate
  •  SimpleJdbcInsert/SimpleJdbcCall


  •  Transaction Manager
  •  Declarative Transactions
  •  Transaction Attributes
  •  Transaction Annotations
  •  Programmatic Transactions
  •  Transaction Template

Unit and Integration Testing

  •  Spring and Unit Testing
  •  Spring TestContext Framework
  •  TestContext
  •  Tests
  •  TestContext Framework Annotations
  •  Transaction Management
  •  Unit Test Framework Annotations and API
  •  Meta Annotations

ORM Integration (Appendix A)

  •  ORM Data Access
  •  Exception Translation
  •  Hibernate Support
  •  Hibernate Integration
  •  Java Persistence API
  •  JPA Support
  • JPA Integration