Java EE with Spring and Hibernate

April 11-15 and 25-29 2011, JHU Dorsey Center, Elkridge MD
Co-Sponsored by Johns Hopkins Engineering for Professionals


This course has now been split into two separate pieces: Java EE with the Spring Framework and Java Persistence with Hibernate and JPA. Please see the new course listings; this old listing is now obsolete and should no longer be listed on any coreservlets.com pages.

“Outstanding whirlwind exploration of Spring and Hibernate, with assured answers to specific questions. Highly enthusiastic instruction (I am in awe!).”

“This has been a fantastic course... I've come out of this class with a very firm grasp on Hibernate and Spring technologies.”

“Lots of cutting-edge [Spring and Hibernate] technology instruction taught in a student-friendly manner.”

“Matt is a great instructor -- very knowledgeable in the subject matter, very willing to answer any/all questions.”

more student reviews

This page describes the public (open enrollment) training course on Spring and Hibernate/JPA to be held March 21-25 at the Johns Hopkins Dorsey Center in Elkridge, MD (co-sponsored by the Johns Hopkins University Engineering for Professionals program). The entire course is personally developed and taught by experienced Java EE developer and instructor Matt Cherry. No contract instructor teaching someone else's materials!

If you are looking for customized Java, J2EE, JSF 2.0, GWT, Ajax, or jQuery training courses taught on-site at your company, please see this page.

Register Early! Five of coreservlets.com's previous public short courses were full, so reserve your spot today. Registrations are taken in the order they are received.


Course Overview

Java EE has made tremendous strides in recent years, but through it all, few technologies 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. 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.

Coreservlets.com normally runs on-site J2EE and Ajax training courses at customer locations. This is easier administratively, is better for clients since the topics can be customized, and is more cost effective for students since no travel is required. However, due to demand from those who do not have enough students for an on-site course, coreservlets will be running a public (open enrollment) Spring and Hibernate training course March 21-25 in Elkridge MD.

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

About the Instructor

Matt Cherry has been in the technology arena for over 10 years, spending the majority of that time developing Enterprise Java applications. He has supported varying areas of industry, from working to develop marketable software products in the private sector, to providing services as a professional consultant in the public sector.

On the private side, Matt developed a strong software process discipline while working for Fortune 500 companies such as General Electric and Oracle Corporation. For a more agile approach, Matt spent a tour of duty at a dot com, where bleeding edge technologies and techniques were frequently embraced. In the public sector, Matt has consulted to multiple government agencies, particularly surrounding the Department of Defense and Intelligence Community.

Working in these diverse environments has enabled Matt to relate to most organizational situations and understand the benefits and shortcomings of each. While he appreciates and prefers a structured process-oriented approach, he also understands the need for agility and flexibility that are required in certain situations.

In addition to his professional work, Matt keeps a hand in academia. After receiving his Masters in Computer Science from Johns Hopkins University, he returned to his alma mater as an adjunct professor in the Computer Science program. He currently teaches Enterprise Design and Implementation to senior Masters-degree candidates.

Through coreservlets.com, Matt offers professional courses in Java Enterprise Computing, including Spring, Hibernate, Enterprise Java Beans, and Web Services (both SOAP and REST). Each of these courses, as well as his Johns Hopkins courses, are developed, written, and delivered by Matt personally.

Though he considers his core competency to be Java, during his tenure at Oracle he became an Oracle certified DBA – passing several exams to obtain his Oracle Certified Professional (OCP) certification. This gives Matt a unique perspective when it comes to bridging the gap between middleware software, persistence technologies, and database design and capabilities.

Currently a full time Senior Software Engineer at Integrated Computer Concepts Inc. (ICCI), he spends his days (and sometimes nights) leading development teams and designing scalable solutions as a consultant. Matt has led several development efforts leveraging various technologies and frameworks, mentoring team members, and taking applications across their entire lifecycle from Requirements to Production. He enjoys teaching, and particularly the discussions that arise from the interaction with his students. He feels it is not enough just to know how to use a technology, but also to understand how it is really benefiting your effort.

Prerequisites

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.

Venue

The course will be held at the Johns Hopkins Dorsey Center in Elkridge, Maryland. This is a modern, comfortable venue with separate computers for each student, fast internet connections, and with coffee, snacks, and meals included. Class meets from 8:30 am to 4:30 pm daily. For students who prefer to bring their own laptops, fast wifi is available, and you can email the instructor for information on installing the class software in advance.

For Maryland residents, the location is centrally located 5 minutes from BWI airport and has plenty of free parking. For out-of-town students, there are many hotels within 1 mile.

Registration

The five-day course costs $2395 per student and includes an extensive course notebook, a commercial textbook, exercises, exercise solutions, breakfast, snacks, and lunch. Compare this price to courses from Sun, Learning Tree, GlobalKnowledge, and Oracle University that cost around $2400 for four-day courses and $3000 for five-day courses that do not include textbooks or meals. Besides, those courses almost always use an unknown instructor who did not develop the course materials and often lacks significant real-world development experience.

To register, fill out and send in the course registration form. Space is limited: five previous offerings of coreservlets.com courses were full. Bonus: Register at least a week in advance and get a $50 gift certificate from amazon.com.

Questions and More Info



  • Guinea pigs? No! coreservlets.com courses are well-tested, having been taught in 7 countries and dozens of US venues. We don't use your developers as guinea pigs for new materials.
  • Regurgitation? No! Matt developed all his own materials. No contract instructor regurgitating memorized PowerPoint slides.
  • Green? No! Matt is an experienced developer, and has built several applications using Spring and Hibernate that are still in use today. The course gives best practices and real-world strategies. No newbie instructor dodging tough questions.

Syllabus

HibernateSpring

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

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