How To Take This Class

Course Overview

Mastering the Spring 3.0 Framework is a five-day hands-on Spring training course geared for experienced Java developers who need to understand what the Spring Framework is in terms of today's systems and architectures, and how to use Spring in conjunction with other technologies and frameworks. This leading-edge course provides added coverage of Spring's Aspect-Oriented Programming and the use of Annotations, as well as Spring security. It includes complete coverage of all new features in Spring 3.0.

Course Prerequisites

Attendees should have practical basic Java development experience.

Course Audience

This an intermediate- level Spring 3.0 training course, designed for developers who need to understand how and when to use Spring in Java and JEE applications.

What You'll Learn

Upon successful completion of this course, students will be able to:
  • Explain the issues associated with complex frameworks such as JEE and how Spring addresses those issues
  • Understand the relationships between Spring and JEE, AOP, IOC, JDBC, Hibernate, JSF, Struts, JMS, and EJBs
  • Discuss the challenges to adopting Spring
  • Write applications that take advantage of the Spring container and the declarative nature of assembling simple components into applications
  • Understand what the Spring Expression Language brings to the table and how to use it
  • Understand and work with various options for integrating persistence into a Spring application including the recently incorporated Object XML Mapping (OXM) functionality
  • Work with Spring's support for transactions
  • Understand and work with various options for integrating view-oriented frameworks for web applications into Spring. Frameworks that are examined include Spring MVC, JSF, and Struts
  • Integrate JMS into the Spring framework
  • Using Spring to work with and/or implement SOAP and RESTful web services
  • Use Spring Security to protect your applications

Course Duration

5 Days

Course Outline

  1. Introduction to the Spring 3.0 Framework
    • Understanding the value of Spring
    • Inversion of Control
    • Dependency Injection
    • Spring Overview
    • Spring Application Architectures
    • Spring Container
    • Managing the Container
    • Access to Services and Resources
    • Application Contexts
    • Beans as Components
    • Beans and Factories
    • XML Bean Configuration
    • Annotation and SPEL-based configuration
    • Bean Definition and Dependencies
    • Bean Lifecycle
    • Customization Options
    • Post-Processors
    • Property Editors
    • Data Handling
    • Validation using the Spring Validator
    • Type Conversion using Converters
    • Formatting using Formatters
    • Spring Expression Language (SPEL)
    • Using SPEL
    • Evaluating Expressions
    • Language Constructs
    • Operators and Assignment
    • Variables and Functions
  2. Aspect-Oriented Programming
    • AOP Benefits and Concepts
    • Aspect Defined
    • Decoupling Through Aspects
    • Code Generation Styles
    • Cross-Cutting Concerns
    • Spring's AOP Framework
    • Advice and Weaving
    • Proxies: Cost/Benefit
    • Types of Advice
    • Interceptor Chain
    • Joinpoints and PointCuts
    • Advisors
    • Working with Proxies
    • Annotations and AOP
    • Aspects, Advice, and Pointcuts Using Annotation
    • Introductions
    • Introductions and Annotations
  3. Data Access
    • Data Access Pattern
    • Overview of Persistence Layer and Transactions
    • Transaction Overview
    • Spring Transactions
    • Defining Spring Transactions
    • Working with Demarcation
    • Managing Spring Transactions
    • Spring JDBC (optional)
    • Spring JDBC Architecture
    • Working with JDBC Template
    • Database Operations
    • Handling JDBC Exceptions
    • Hibernate (optional)
    • Spring - Hibernate Architecture
    • ORM Mapping Overview
    • DAO Implementation
    • Working with Hibernate DAOs in Spring
    • Hibernate Template
    • XML Interoperability
    • Object XML Mapping in Spring
    • Marshalling and UnMarshalling
    • Implementation Options
    • Working with the JAXB Marshaller
  4. Spring Views
    • Spring/Web Framework Architecture
    • Spring MVC (optional)
    • Spring MVC Architecture
    • Spring MVC Components
    • Spring MVC Flow
    • Dispatcher and Controllers
    • Handlers and Mapping
    • Interceptors
    • Spring and Struts (optional)
    • Spring/Struts Architecture
    • Integrating Struts into Spring
    • Spring and JSF (optional)
    • Spring/JSF Architecture
    • Integrating JSF into Spring
  5. Spring Security Framework
    • Understand basic security concepts
    • Secure Web Pages
    • Use Multiple Roles – Secure pages based on roles
    • Allow login and logout
    • Create custom login pages
    • Use JSP Tags to conditionally allow content based on roles
    • Securing Services based on roles
    • Securing Services based on identity
  6. Spring and JMS (optional)
    • JMS Overview
    • Spring/JMS Architecture
    • JMS Template
  7. Spring Remoting and Web Services (future)
    • Services Overview
    • Exposing Services using RMI
    • Exposing and Accessing Services using HTTP
    • Working with JAX-WS
    • Exposing and Accessing RESTful Services
    • Accessing using RestTemplate
    • Exposing as XML Endpoint
    • Exposing as a JSON Endpoint
  8. Spring Web Flow (future)
    • Web Flow Overview
    • Flow Definition
    • Working with Views
    • Working with Actions
    • JavaScript and Expression Language Options