CORE SPRING 3 ON JBOSS USING SPRINGSOURCE TOOL SUITE – GTJ23

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.  Some of the topics covered include Spring Dependency Injection, using Spring with database frameworks like Hibernate, using Spring with various web frameworks like Spring MVC, and various Spring integrations with JMS and web services.

OBJECTIVES
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
TOPICS
  • 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

^^

Duration

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 Characteristics

Spring Modules

Why Spring?

Problems with EJB

Spring Philosophies

Alternatives to Spring

Simple Example

What is Inversion of Control?

IoC Example

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

PropertyPlaceholderConfigurer

PropertyOverrideConfigurer

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. ALTERNATE CONFIGURATION

Java @Configuration Classes

Configuration with Spring Expression Language

Resolving Text Messages

Loading External Resources

Spring Property Editors

Custom Property Editors

CHAPTER 8. 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 9. OVERVIEW OF SPRING DATABASE INTEGRATION

DAO Support in Spring

DataAccessException

Using DataSources

DAO Templates

DAO Templates and Callbacks

ORM Tool Support in Spring

CHAPTER 10. SPRING JDBC SUPPORT

Using Spring with JDBC

Writing Data with JdbcTemplate

Reading Data with JdbcTemplate

Reading Single-Row Scalar Data

Spring NamedParameterJdbcTemplate

CHAPTER 11. 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

LocalContainerEntityManagerFactoryBean

LocalEntityManagerFactoryBean

Application JPA Code

Hibernate

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 12. INTRODUCTION TO ASPECT-ORIENTED PROGRAMMING

What is AOP?

Cross-Cutting Concerns

AOP Concepts

AOP in Spring

CHAPTER 13. SPRING TRANSACTION MANAGEMENT

Transactions

Transaction Management in Spring

Spring Transaction Managers

Integrating Spring Transactions with Java Enterprise Servers

XA Transactions with Spring

Programmatic Transactions

Declarative Transactions

Transaction Attributes

Transaction Propagation Behavior

Transaction Isolation Levels

Read-Only and Timeouts

NameMatchTransactionAttributeSource

Inheriting Transaction Details

Autoproxying Transactions

Spring XML Syntax for Transaction Advice

CHAPTER 14. @ASPECTJ AOP WITH SPRING

Spring AspectJ AOP

@AspectJ

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

DelegatingVariableResolver

SpringBeanVariableResolver

SpringBeanFacesELResolver

Spring Bean Scopes

FacesContextUtils

JSF with Spring Web Flow

CHAPTER 16. SPRING MVC

Spring MVC

Spring MVC Components

DispatcherServlet

Context Loaders

Spring MVC Example

Mapping Web Requests

BeanNameUrlHandlerMapping

CommonsPathMapHandlerMapping

Using Multiple Handler Mappings

Controller Hierarchy

AbstractCommandController

SimpleFormController

AbstractWizardFormController

MultiActionController

ThrowawayController

View Resolution

InternalResourceViewResolver

BeanNameViewResolver

XmlViewResolver

ResourceBundleViewResolver

Using Multiple View Resolvers

Binding Views to Models

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. 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 18. SPRING JMS

Spring JMS

JmsTemplate

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 19. 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 20. SPRING-WS WEB SERVICES

What is Spring-WS?

Contract First Vs. Contract Last Development

Spring-WS Features

Spring-WS Modules

Spring-WS Distribution

Spring-WS Components

Spring-WS Artifacts

Request Processing Workflow

Spring-WS Example

Spring-WS Client Example

CHAPTER 21. SPRING REST SERVICES

Many Flavors of Services

Understanding REST

RESTful Services

REST Resource Examples

REST vs SOAP

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

Packaging

Spring Expression Language

Java-based Configuration

Annotation-based Configuration

Spring MVC Changes

New Spring MVC Configuration

Spring MVC Annotation Example

Validation

^^

See more JBoss courses