Cette formation vous permettra de développer des applications Java d’entreprise évolutives et modernes. Vous traiterez les problématiques de découpage en couches d’une application et le moyen de les adresser en appliquant les bons Designs Patterns et en capitalisant sur les API et frameworks les plus aboutis du marché.

Description

Durée : 28 heures
Modalités techniques d’évaluation : Évaluation des connaissances par QCM, évaluation des compétences au travers de travaux pratiques et de cas d’études. Contrôle de l’acquisition des connaissances et des compétences pendant la formation par le formateur.
Moyens pédagogiques : Apports théoriques réalisés en classe et complétés par de nombreux travaux pratiques permettent aux participants de disposer d’une expérience concrète. A l’issue des sessions magistrales, réalisation de cas d’études tutorés.

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Découvrir le principe de découpage en couches d’une application
  • Utiliser le conteneur Spring
  • Accéder aux données avec Hibernate
  • Développer une API REST exposant des ressources
  • Consommer une API REST depuis une application cliente HTML/JS AngularJS
PROGRAMME DE FORMATION

Introduction

  • Bonnes pratiques : séparation des responsabilités, DRY, KISS, classes agnostiques, POJO.
  • Principe du découpage en couches : accès aux données, métier et Web.
  • Rôle des Spring, Hibernate, Jersey et AngularJS.
  • Librairies complémentaires : logging avec slf4j et logback, tests unitaires avec JUnit, les mocks.
  • Le principe des « Single Page Application ».

Environnement de travail

  • L’environnement Eclipse.
  • Le plug-in Spring Tool Suite (STS).
  • Les dépendances Maven.

Travaux pratiques
Installation de l’IDE et du plug-in Spring Tool Suite.

Mise en place d’une architecture multicouche avec Spring

  • Le découpage en couches, l’approche POJO.
  • La gestion de l’état.
  • L’injection de dépendances.
  • Les interceptions.
  • Les invocations planifiées.
  • La supervision avec JMX.
  • La configuration du conteneur (annotations, par XML).
  • Le test des beans managés.

Travaux pratiques
Mise en place d’une application multicouche, utilisation de Spring comme factory pour gérer nos objets (cycle de vie, injection de dépendance…).

Accès aux données avec Hibernate et JPA

  • Le mapping objet relationnel (XML, annotations).
  • Le Lazy Loading.
  • L’API EntityManagerFactory et EntityManager.
  • JPA-QL, API Criteria, MetaModel, EntityGraph.
  • La gestion des transactions, le lien entre couplage JPA et JTA.

Travaux pratiques
Mise en place d’entités persistantes. Gestion Spring du cycle de l’entityManager JPA, usage du moniteur transactionnel de Spring et des annotations JTA.

Web Services REST, API JAX-RS vs Spring MVC

  • Qu’est-ce qu’une URI ?
  • Rappels HTTP : les verbes (GET, PUT…), les retours, les contentType, les en-têtes, la gestion du cache.
  • CORS : Cross Origin Shared Resource.
  • HATEOAS.
  • Mise en place de services REST (JAX-RS et Jersey).
  • Comparaison avec Spring MVC.

Travaux pratiques
Développement d’une API REST exposant les ressources de l’exercice précédent.

Client HTML/JavaScript avec AngularJS

  • L’avantage des IHM « côté client ».
  • L’écueil que représente la manipulation du DOM.
  • L’approche proposée par AngularJS.
  • Isomorphic JavaScript pour le rendu côté serveur.

Travaux pratiques
Création d’un client HTML/JavaScript avec AngularJS consommant l’API REST développée précédemment.