Mettre en oeuvre des architectures JEE Web avec Spring, Hibernate et JSF
Objectifs
- Maîtriser une alternative efficace et professionnelle aux EJB, pour effectuer un mapping objet/relationnel et implémenter les services métiers.
- Comprendre comment gérer la problématique d'une architecture élaborée
- Savoir mettre en oeuvre Spring, Hibernate/JPA et JSF
Programme
Introduction
- La problématique des architectures JEE élaborées (avec façades , services , D.A.O.)
- Les solutions "classiques" (Design Patterns JEE), les solutions "légères" et "souples"
- Le Design Pattern "injection de dépendances" (ou "Inversion de Contrôle")
- Les bases de Spring (syntaxes "xml" et "annotations"), Spring-AOP
Mapping objet-relationnel et persistance : Hibernate/JPA et Spring
- Concepts ORM
- Configurations "Hibernate", "JPA" et "Hibernate + Spring"
- La mise en place du mapping (.hbm.xml), D.A.O.
- Le langage HQL (Hibernate) et les différentes associations (1-1, 1-n ,....)
- Paramétrage ORM à base d'annotations "JPA" et intégration "Spring/JPA"
Les services métiers
- La gestion des transactions avec Spring (avec "lazy" et effets indirects expliqués)
- Tests unitaires avec JUnit et DbUnit
- Associations classiques (façade, services, Dao) (LocalFacade, BusinessDelegate)
- "Pour et contre" des architectures "DRY" et des architectures multi-niveaux avec DTO/VO
Structuration du modèle applicatif (proche IHM) et essentiel de JSF
- Utilisation de Spring coté Web (paramétrage du "ContextLoaderListener")
- Mise en oeuvre avec Spring et JSF
- Essentiel de JSF(configuration, validations, ...)
- Modèle applicatif à responsabilités séparées("stateless", "statefull", caches)
- Utilisation des "injection de dépendances" de JSF pour bien structurer le code
- Objets "Coordinateurs" (de scope=session) et "Référentiel" (de scope="application")
Présentation de "Spring Web Flow" (extension Spring facultative)
- La problématique des flux applicatifs complexes (navigations, machine à états (viewState), événements , ....), paramétrage XML
- Logique applicative complètement séparée des technologies de vues (JSF ou autres)
Compléments
- "CXF" pour les "web services", (syntaxes ".hbm.xml" avant annotations JPA)
- Vue d'ensemble sur extensions JSF (Ajax For JSF, richFaces, Facelets, ...)
Please login to get access to the quiz
Back to Développement avec le framework Spring