J1 Course
Advanced Java Course - Spring and Hibernate frameworks
System architects, system engineers, developers and analysts / programmers with at least three years experience in Java. It's also required understanding of the process of software development and programming in general, the ability to create, test and run programs independently.
Course Objectives
In recent years we have seen the predominant claim of lightweight JavaEE frameworks, compared to the paradigm based on EJB 2.0.

The purpose of this course is to provide Java developers an initial description of two of the major J2EE framework (Spring and Hibernate) and their integration in a web based application. During the course will also be treated principles of OO programming, Design Patterns, Test Driven Development (TDD) and Domain Driven Development (DDD).

Minimum skills required:
  • Knowledge of Object Oriented and UML 2.1
  • Good knowledge of Java 5.0 or upper
  • Good knowledge of JavaEE and Web applications development
  • Knowledge of agile development methodologies
  • Knowledge of Test Driven Development
Optional Competencies:
  • Design or GRASP Patterns
  • Domain Driven Development (DDD)
  • Test Driven Development (JUnit, TestNG)
  • A new paradigm of JavaEE application development
  • The concept of lightweight framework
  • Java 6.0
Spring basics
  • Inversion Of Control
  • Bean Lifecycle Management
  • Spring Application Context
  • Spring basics workshop
AOP with Spring
  • AOP Concepts
  • AOP in Spring (Proxies)
  • AspectJ Injection
  • AspectJ Integration
  • AOP workshop
Data Access with Spring
  • Spring JDBC Support
  • Using Hibernate in Spring Applications (DAO)
  • Data Access workshop
Spring in the Middle Tier
  • Transaction Management
  • Spring and J2EE
  • Job Scheduling with Spring (OS Quartz)
  • Middle Tier workshop
Web Applications with Spring
  • Spring MVC
  • Beyond JSP (Velocity, XSLT, Tiles.)
  • Spring and Struts
  • Web Applications workshop
Security Management
  • Managing authentication (Acegi)
  • Security Management workshop
Spring for Rich Web Applications
  • Spring Web MVC framework
  • Bean Lifecycle Management
  • Spring Application Context
  • Spring RIA workshop
Spring 3.0
  • Overview of new features and architecture of the new version 3.0 of the framework
  • Spring Application Tools:
    • Graphical Spring configuration editor
    • Spring 3.0 support including @Configuration and @Bean styles
    • Spring Web Flow and Spring Batch visual development tools
    • Spring Roo project wizard and development shell
    • Spring Application blue prints and best practice validation
  • Enterprise OSGi Development:
    • OSGi bundle overview and visual dependency graph
    • Classpath management based on OSGi meta data
    • Automatic generation of manifest dependency meta data
    • SpringSource Enterprise Bundle Repository browser
    • Manifest file validation and best practice recommendations
  • Spring 3.0 workshop
Spring Roo
  • Presentation of the next-generation rapid application development tool for Java developer
  • Spring Roo workshop
ORM Basics
  • Introducing ORM principles
Mapping Persistent Classes
  • Implementing the Domain Model
  • Defining mapping metadata
  • Mapping class inheritance
  • Introducing associations
  • Mapping workshop
Working with Peristent Objects
  • Persistence lifecycle
  • Persistence Manager
  • Retrieving Objects
  • Persistent classes workshop
Transaction, Concurrency, and Caching
  • Understanding database transactions
  • Working with application transactions
  • Caching theory and practice
  • Transaction & caching workshop
Advanced Mapping Concepts
  • Understanding the Hibernate type system
  • Mapping collections of value types
  • Mapping entity associations
  • Mapping polymorphic associations
  • Advanced mapping workshop
Retrieving Objects Efficiently
  • Executing queries
  • Basic queries for objects
  • Joining associations
  • Writing report queries
  • Advanced query techniques
  • Optimizing object retrieval
  • Retireving objects workshop
Writing Hibernate Applications
  • Designing layered applications
  • Implementing application transactions
  • Handling special kinds of data
  • Development processes
  • Hibernate applications workshop
Framework integration in a real application context:
  • Spring & Hibernate
  • Spring IDE, Jsdt (Eclipse)
  • Hibernate Tool
  • SpringSource Tool Suite (STS)
  • Framework integration workshop
At the end of the course
Participants will have acquired advanced knowledge of the following:
  • Knowledge of Spring framework 2.5 and 3.0 in a real application context as an example.
  • Knowledge and use of Spring Web MVC framework.
  • Using Spring Roo 1.0.
  • Familiarity with the concept of ORM.
  • Knowledge of Hibernate 4.0 framework.
  • Some XP practices and methodology of Test Driven.
  • Integration framework in an agile development approach and Domain Driven.
Training method
Theoretical and practical, or course elements will alternate theoretical illustration of specific cases and the demonstration of the Spring and Hibernate frameworks in the context of web application examples.
Delivery will be based on a practical-exercise, for which the exercises will be balanced on the basis of the relevance of the topics covered.
5 days full time (9.30 - 13.00)   (14.00 - 17.00)