02/28/2022 - 03/04/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,695.00
Enroll
03/28/2022 - 04/01/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,695.00
Enroll
05/02/2022 - 05/06/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,695.00
Enroll

Objectives

  Upon completion of this course, you should be able to:
  • Understand the need for the Spring framework
  • Develop Spring applications using the SpringSource Tool Suite and deploy to the SpringSource tc Server
  • 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 with 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

Audience

 

Software designers, developers and programmers.

Prerequisites

 

To succeed fully in this course, students should be able to:

  • Program Java applications - Course WA1278 meets this requirement

Duration

  Five days.
Lab Setup Guide

Outline for Core Spring 3 on SpringSource tc Server Using SpringSource Tool Suite

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

Chapter 7. Alternate Configuration

  • Java @Configuration Classes
  • Configuration with Spring Expression Language
  • Resolving Text Messages
  • Loading External Resources
  • Spring Property Editors
  • Custom Property Editors
  • Summary

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
  • Summary

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
  • Summary

Chapter 10. Spring JDBC Support

  • Using Spring with JDBC
  • Writing Data with JdbcTemplate
  • Reading Data with JdbcTemplate
  • Reading Single-Row Scalar Data
  • Spring NamedParameterJdbcTemplate
  • Summary

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
  • Summary

Chapter 12. Introduction to Aspect-Oriented Programming

  • What is AOP?
  • Cross-Cutting Concerns
  • AOP Concepts
  • AOP in Spring
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary