Training » All Courses » Java » JavaEE » Spring™ and Hibernate™

Course Summary

Marakana Spring/Hibernate Training is an intensive 5-day course that teaches students how to develop enterprise Java web applications with the Spring, Hibernate, and Spring Security open-source frameworks.

The class is designed to run as a hands-on tutorial-style with more than 50% of time being devoted to writing code.

The main goal of this course is to set to students who are already familiar with Java, Servlets/JSPs (possibly even other frameworks) on the right path of developing enterprise-class web applications on a best-of-breed software stack (Spring and Hibernate) while utilizing time-tested best-practices.

While we don't skip on the theory, students focus most of their energy on why they should use a particular technique, and how to best apply it.

Duration

5 days.

Objectives

By taking Marakana Spring/Hibernate Training class, students will:

  • Understand the benefits of Inversion of Control (IoC) and Dependency Injection Paradigms (DI) - especially when compared to tranditional J2EE approaches of wiring business objects
  • Understand the benefits of object-relational mapping (ORM) frameworks - especially when compared to traditional JDBC-based data persistence approaches
  • Be able to use Hibernate (with Annotations) for the persistence layer - including configuratio, querying, tuning, and advanced mapping techniques
  • Be able to use Spring Framework for the Business and DAO layers: including POJO-based development, transactions, wiring, AOP, and testing (TDD) techniques
  • Be able to use Spring MVC to replace Servlets, get support for binding, validation, navigation, error handling, etc.
  • Be able to use Spring WebFlow to model complex user flows in a web application
  • Be able to set up Spring's Security framework to set up advanced security controls around a Spring Web application - including authentication, authorization, and data transport security (SSL)
  • Be able to monitor and tune a Spring/Hibernate based web application
  • Learn how to use Eclipse for Java EE to help speed up the development efforts
  • Learn how to automate common development tasks with Ant
  • Learn best practices, and overall differences between Spring/Hibernate-based applications when compared to other solutions

Audience

Marakana Spring/Hibernate Training course is designed for Java web developers and architects who wish to avoid the pitfalls of traditional J2EE web development approaches and build best-of-breed web applications with Spring and Hibernate. take advantage of many of the features offered by Spring and Hibernate, but lacking in the traditional J2EE toolbox - all while learning to avoid all the pitfalls by learning about best practices and the best-of-breed solutions offered by the open-source community.

The participants taking Marakana Spring/Hibernate Training course must be familiar with:

  • Java and the general principles of object oriented programming (OOP)
  • Servlets and JSPs
  • JDBC

Prior exposure to the following concepts and technologies is very helpful, but not required:

  • General understanding of web development principles
  • Basic knowledge of HTML and CSS
  • Basic knowledge of JavaScript
  • Understanding of Java 5 Annotations
  • Basic understanding of the HTTP protocol, including concepts like SSL, redirection, GET vs POST, etc.
  • Basic knowledge of SQL
  • Familiarity with MySQL (or any other relational database)
  • Familiarity with Eclipse IDE (or any other IDE)
  • Familiarity with Tomcat (or any other Java EE application server)
  • Familiarity with Ant

Instructors

After ten years teaching Computer Science in a University I left in order to apply those skills in a commercial environment. Since then I have gained wide experience in helping many large corporations add value to their IT staff resource by upskilling, cross-training and mentoring developers in the latest software technologies.
My work with some of the world's most successful corporations has given me deep insight into the effective application of appropriate software tools and techniques in today's commercial environment.
My overall strengths include excellent communication and training skills, substantial knowledge and experience of the Java platform and XML technologies, proven judgement in the selection of emerging technologies, and an intelligent, mature approach to any new challenge.
I continue to invest heavily in keeping my knowledge and skills up to date in Java and XML for the enterprise, the relevant programming techniques and libraries, system architectures, and applications. I have retained an enthusiasm for the technical subjects I teach, which has often been commented upon in course evaluations. More about Michael Callaghan...

Additional Notes

This course is typically delivered on Eclipse, Tomcat, and MySQL.

Marakana.com Runs on Java with Spring and Hibernate

Spark Stack

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.

Outline

Why Spring Framework?

  • What's wrong with Java EE (EJB)
  • Light-weight vs. heavy-weight containers
  • Motivation for Spring
  • Spring Background

Spring Framework Overview

  • Spring features
  • Spring light-weight container architecture
  • Spring application context
  • Inversion of Control (IoC) design pattern
  • Dependency Injection (DI)
  • Advantages of IoC/DI
    • Design for testability - test driven development (TDD)
    • Low coupling
    • Code re-use
    • Consistent architecture and configuration
    • Easy-to-follow design
    • Good OOP design

Spring Installation and Configuration

  • Spring libraries and dependancies
  • XML configuration files
  • Annotations

Spring IDE Overview

  • Overview
  • Features
  • Installation
  • Editors, Wizards, Graphs, Views, Validators

Hibernate Overview

  • Hibernate and J2EE - How we got here, why Hibernate, the bigger picture
  • Objects and Persistence - Object Relational Mapping
  • Hibernate Architecture
  • Download, Install and Configure
  • First look application

Getting Started with Hibernate

  • Understanding Hibernate database connections
  • Hibernate mapping
  • Creating persistent classes
  • Mapping collections of objects
  • The persistent object lifecycle

Digging Deeper with Hibernate

  • Hibernate Query Language (HQL) and Criteria API
  • Filters
  • Caching objects with Hibernate
  • Transactions and Locking
  • Hibernate extensions and development toolsets
  • Bringing it all together

Spring Persistence/DAO Support

  • Overview
  • JDBC Integration (Overview-only)
    • DataSources via JNDI
    • Templates
    • Exception Translators
    • Queries and updates
  • Hibernate ORM Integration
    • Resource management and SessionFactory
    • Templates
    • Exception Translators
    • Transactions (intro to AOP)
    • API

Spring JMS Overview

  • Templates
  • Connection, Destination, Transaction management
  • Sending and Receiving Messages (sync/async)
  • Listeners
  • Message-driven POJOs

Spring Testing Overview

  • Unit Testing
  • Integration Testing
  • Mocks, Stubs, Fixtures
  • jUnit Integration
  • Spring TestContext Framework

Spring MVC and WebFlow

  • Overview
  • The DispatcherServlet
  • Configuration
  • Controllers: simple, form, multi-action
  • Views and view resolution: JSP/JSTL
  • Forms with Spring tag libraries
  • Data-binding, Property Editors, and Validation
  • I18N
  • Exception handling
  • Convention over configuration with annotation-driven controllers
  • Overview of Spring WebFlow
  • Integration with other frameworks - e.g. Sturts, JSF, Tapestry, WebWork (as requested)

Spring AOP

  • Overview
  • Concepts
  • Proxies
  • @AspectJ vs Spring AOP
  • API
  • Built-in aspects
  • Defining and using aspects
  • Transactions (e.g. Service Layer)

Spring Security (a.k.a. Acegi) Framework

  • Overview
  • Installation
  • Architecture
  • Configuration
  • Web Security
  • AOP-based security
  • Integration

Final Thoughts

  • Overview of Spring JMX
  • Overview of Spring Remoting
  • New features in Spring 2.5
  • Annotation vs. XML configuration (wiring)
  • Direction of Spring Framework
  • Best practices and architectural/design patterns