Developing J2EE Applications Using Spring 2.0 and Eclipse

This course provides students with the knowledge needed to use the Spring Framework to develop flexible, testable and maintainable J2EE (Java 2 Enterprise Edition) applications

After completing this course, the student 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 ORM framework
• Declaratively and programmatically manage transactions in Spring
• Use the Spring MVC web framework and form tag library to develop flexible web applications
• Integrate Spring with the Struts web application framework
• Access enterprise services including JMS, email, job schedulers and JNDI
• Incorporate classes written in dynamic languages using Spring

Course Outline

1. Chapter 1 Introduction to the Spring Framework
• Topics
• 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
• Spring Containers
• Bean Creation
• Bean Destruction
• Wiring Beans
• Bean Element
• Dependency Injection Primitives and Strings
• Dependency Injection - References
• Dependency Injection Inner Beans
• Dependency Injection Lists, Arrays and Sets
• Dependency Injection Maps
• Dependency Injection - Properties
• Constructor Injection
• Constructor Injection Handling Multiple Arguments
• Constructor vs. Setter Injection
• Autowiring
• Autowiring Example
• Autowiring
• Mixing Explicit and Autowiring
• Special Spring Interfaces
• BeanPostProcessor
• BeanFactoryPostProcessor
• PropertyPlaceholderConfigurer
• CustomEditorConfigurer
• Awareness Interfaces
• Listening For and Publishing Events
• XML Schema-based Configuration
• XML Schema jndi Example
• XML Schema util Example

2. Chapter 2 Aspect-Oriented Programming in Spring
• Topics
• What is AOP?
• Cross-Cutting Concerns
• AOP Concepts
• AOP in Spring
• Types of Advice
• Before Advice
• Before Advice Example
• After Returning Advice
• Around Advice
• Around Advice Example
• Throws Advice
• Pointcuts
• Advisors
• NameMatchMethodPointcut
• NameMatchMethodPointcut Example
• Perl5RegexpMethodPointcut
• ControlFlowPointcut
• IntroductionInterceptor
• IntroductionInterceptor Example
• DelegatingIntroductionInterceptor
• IntroductionAdvisor
• BeanNameAutoProxyCreator
• BeanNameAutoProxyCreator Example
• DefaultAdvisorAutoProxyCreator
• DefaultAdvisorAutoProxyCreator Example
• Metadata Autoproxying
• Spring 2.0 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

3. Chapter 3 Database Integration and Transaction Management
• Topics
• DAO Support in Spring
• DataAccessException
• Using DataSources
• DAO Templates
• DAO Templates and Callbacks
• Using Spring with JDBC
• Writing Data with JdbcTemplate
• Reading Data with JdbcTemplate
• Reading Single-Row Scalar Data
• Spring 2.0 NamedParameterJdbcTemplate
• ORM Tool Support in Spring
• Hibernate
• Hibernate Session Factory
• Spring LocalSessionFactoryBean
• Spring HibernateTemplate
• Spring HibernateCallback
• HibernateTemplate Convenience Methods
• LocalEntityManagerFactoryBean
• Spring JpaTemplate
• Spring JpaCallback
• JpaTemplate Convenience Features
• Transactions
• Transaction Management in Spring
• Spring Transaction Managers
• Programmatic Transactions
• Declarative Transactions
• Transaction Attributes
• Transaction Propagation Behavior
• Transaction Isolation Levels
• Read-Only and Timeouts
• NameMatchTransactionAttributeSource
• Declaring Transactions with Metadata
• Inheriting Transaction Details
• Autoproxying Transactions
• Spring 2.0 XML Syntax for Transaction Advice

4. Chapter 4 Spring MVC
• Topics
• 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 2.0 Form Tags
• form and input Tags
• password and hidden Tags
• checkbox Tag
• radiobutton Tag
• textarea Tag
• select Tag
• option Tag
• options Tag
• errors Tag
• Portlets
• Spring 2.0 Portlet MVC Framework
• Spring 2.0 Portlet MVC Framework
• Spring 2.0 Portlet MVC Framework
• Spring 2.0 Portlet MVC Framework
• Spring 2.0 Portlet MVC Framework
• Spring 2.0 Portlet MVC Framework

5. Chapter 5 Web Application Alternatives
• Topics
• Velocity Templates
• Configuring Velocity in Spring
• Velocity View Resolution
• Using Velocity Utility Tools
• Accessing Session/Request Attributes in Velocity
• Binding Velocity Views to the Model
• FreeMarker
• Configuring FreeMarker in Spring
• FreeMarker View Resolution
• Accessing Session/Request Attributes in FreeMarker
• Binding FreeMarker Views to the Model
• Jakarta Tiles
• Configuring Tiles in Spring
• Tiles View Resolution
• Tiles Component Controller
• Creating Excel Spreadsheets
• Creating PDF Documents
• Creating Other Non-HTML Documents
• Jakarta Struts
• Configuring Spring in Struts
• Spring-Aware Struts Actions
• Delegate Requests to Struts Action Beans
• DelegatingRequestProcessor

6. Chapter 6 Accessing Enterprise Services
• Topics
• Remoting in Spring
• Clients of RMI Services
• Exporting RMI Services
• Hessian and Burlap
• Clients of Hessian/Burlap Services
• Exporting Hessian/Burlap Services
• Spring HTTP Invoker
• Clients of HTTP Invoker Services
• Exporting HTTP Invoker Services
• Clients of EJB Services
• Clients of Web Services
• Accessing Objects in JNDI
• Using the Quartz Scheduler
• Configuring a Quartz Job
• Scheduling a Quartz Job
• Starting Quartz Jobs
• Scheduling a Quartz Job Using a Cron Expression
• MethodInvokingJobDetailFactoryBean
• Sending Email
• Message-Oriented Middleware and JMS
• Sending JMS Messages
• Receiving JMS Messages
• Converting Messages
• Asynchronous Reception of JMS Messages
• Spring 2.0 Dynamic Language Support
• Spring 2.0 Dynamic Language Support
• Spring 2.0 Dynamic Language Support
• Spring 2.0 Dynamic Language Support
• Spring 2.0 Dynamic Language Support
• Spring 2.0 Dynamic Language Support

Audience

Software designers, developers and programmers