Training » All Courses » Java » Spring » Java™ EE with Spring and Hibernate

Course Summary

This course will expose students to new ways of approaching systems, levering concepts such as object-relational mapping: made popular by Hibernate, and Dependency Injection: which is gaining major traction as the preferred way to design flexible architectures through lightweight containers such as Spring. Learn how these technologies increase developer productivity and promote well thought-out design by providing boilerplate infrastructure support of a system, allowing developers to concentrate on what's really important: the business functionality of their code. Reinforced with real life applications and examples, as well in-class exercises, this class leaves students ready to reap the benefits the moment they leave the classroom.

The course is taught by experienced Java EE developer and instructor Matt Cherry.

Duration

5 days.

Objectives

Java EE has made tremendous strides in recent years, but through it all few technologies can claim to have been as influential as Hibernate and Spring. Both these frameworks have changed the playing field, making enterprise level applications simpler, faster, and better designed.

The objective of this course is to get you up to speed with Spring and Hibernate web development.

Audience

The course consists of an approximately equal mixture of lecture and hands-on lab time. It assumes that all students have moderate to strong Java skills; it is not a course for newcomers to Java. It does not assume any previous exposure to Spring, Hibernate, or JPA.

Outline

Hibernate

The Need for Hibernate

  • N-Tier application design
  • Container vs. stand alone applications
  • Refresher on traditional JDBC approach
  • Hibernate installation and setup

Hibernate At a Quick Glance – A Simple Example

  • Hibernate origin
  • Hibernate design
  • Simple but complete example

Association & Collection Mapping

  • Realizing association relationships
  • Mapping collections

Components & Inheritance Mapping

  • Recognizing and implementing components
  • Hibernate inheritance techniques

Object Lifecycle, Persistence and Session Management

  • Object States
  • CUD (no querying)
  • Session Management

Executing Queries

  • Binding Parameters
  • Running Query
  • Iterating through results
  • Tuples/Scalar (Returning multiple object types vs. just simple data values)
  • Externalizing Queries in mapping file
  • Queries in Native SQL

HQL in Detail and Criteria Queries

  • The Hibernate Query Language (HQL)
  • Criteria Queries

Transaction Management

  • Introduction to Transactions
  • Optimistic concurrency control (version column)
  • Pessimistic locking
  • Connection release

Advanced Hibernate Features

  • Batch processing
  • 2nd Level Cache
  • Fetching strategies

EJB 3.0 Compliance & Best Practices

  • JPA
  • Entity manager
  • Annotations
  • Best practices

Spring Framework

Introduction to Inversion of Control and Aspect Oriented Programming

  • Brief history/origin on Spring
  • Design considerations used by Spring authors
  • Discuss interface-driven development
  • Overview of Spring architecture components

The Spring IoC Container

  • Spring configuration
  • Defining and instantiating beans
  • Dependency Injection
  • Bean scope, inheritance and relationships
  • Lifecycle call backs

Aspects in Spring

  • AOP Concepts
  • Advice, Pointcuts and Aspects
  • AspectJ Annotations
  • XML configuration of Aspects

Data Access Integration with JDBC

  • Data sources & connections
  • JDBC Templates
  • Batch Operations

Data Access Integration with ORM

  • Hibernate Template
  • JPA Template
  • Walk through simple example from Hibernate lectures with Spring additions

Transaction Management

  • Attributes of Transaction Management
  • Declarative Transactions Management
  • Programmatic Transaction Management
  • Integration with Application servers

Remoting with Spring

  • RMI
  • EJBs
  • JMS
  • Web services

Spring MVC

  • Dispatcher Servlet
  • Controllers
  • Handler Mappings
  • Views, Locales, Themes
  • Exception Handling

Spring MVC Integration with Other Presentation Technlogies

  • JSP & JSTL
  • Integration with Struts & Tiles
  • Integration with JSF

Other Enterprise Framework Components

  • Integration with scheduler components (Java Timer, Quartz)
  • Thread Pool Management
  • OXM (Object XML Mapping)
  • Testing with Spring