Developing Enterprise Java Applications with Spring & Hibernate (EJASH) – Outline

Detailed Course Outline

Introducing the Spring Framework

Spring architecture fundamentals

  • Identifying Spring application components
  • Defining the n-tier application architecture

Applying Inversion of Control (IoC) and Dependency Injection (DI)

  • Delegating object creation to the Spring bean factory
  • Controlling bean creation with scopes and methods

Constructing an Effective Data Access Tier with Spring

Simplifying data access with JDBC templates

  • Streamlining runaway code with JDBC templates
  • Structuring queries and callbacks for maintainability

Abstracting the Data Access Layer

  • Supporting the Data Access Object (DAO) pattern
  • Achieving implementation independence with platform agnostic exceptions

Managing transactions

  • Analysing Java EE transaction support
  • Controlling transactions with Spring transaction manager
  • Declaring transaction policies with XML and annotations

Building a Web Tier with Spring MVC

Processing web requests

  • Analysing Spring MVC architecture
  • Mapping requests to controllers with annotations
  • Processing commands, form submissions and wizards

Rendering the response

  • Spring JSP support
  • View technology alternatives with Velocity

Building Ajax controllers

  • Establishing the requirements for Ajax controllers
  • Implementing REST-style URLs

Persisting Objects with Hibernate

Integrating Hibernate

  • Simplifying data access with O/R mapping
  • Unravelling the Hibernate architecture
  • Deploying and configuring Hibernate

Generating Hibernate applications

  • Developing the persistent class
  • Storing and retrieving Java objects

Handling Complex Object Relationships

The role of the Hibernate session

  • Establishing a thread-safe session object
  • Defining object states: transient, persistent, detached

Mapping collections

  • Persisting and retrieving collections
  • Preserving collection order for data integrity

Strategies for building object associations

  • Specifying one-to-many and many-to-many relationships
  • Controlling the association life cycle

Effectively mapping inheritance relationships

  • Applying class rules for inheritance
  • Techniques for class-database mapping

Optimising Data Access

Applying Hibernate Query Language (HQL)

  • Improving structure with named queries
  • Augmenting HQL with native SQL
  • Maximising Hibernate performance