Concevoir et développer des applications avec Jakarta EE

Les applications backend posent de nombreux défis: persistance de données, transactions, remoting, exposition d'API REST ou SOAP, échange de messages, etc... Jakarta EE, qui a pris le relai de Java EE, propose de répondre à ces problématiques par des spécifications.

Elles prennent la forme d'API standardisées et sont implémentés par différents runtimes (serveurs d'applications, Quarkus...).

Ce cours vous apprendra à écrire et à déployer des applications backend en utilisant ces APIs.

(35 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses Java, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), une habitude de travailler avec Eclipse ou IntelliJ.

Méthodes pédagogiques

Programme détaillé

Introduction
  • Rappel des bonnes pratique de conceptions.
  • Jakarta EE: un ensemble d'API comme réponse aux problématiques des application backend.
  • De Java EE à Jakarta EE: la transition vers la fondation Eclipse.
  • Eclipse Microprofile comme extensions aux API de Jakarta EE.
  • L'environnement d'exécution.
  • L'environnement de développement.
Couplage faible avec Jakarta CDI, Jakarta Interceptors et EJB
@Inject
  • La déclaration d'un bean.
  • L'injection de dépendances.
  • Les intercepteurs.
  • La publication d'événements.
  • EJB comme extension à CDI.

Mise en pratique: mise en oeuvre de l'injection de dépendance dans une application n-tiers avec CDI, exposition en remoting avec EJB.

Accès aux données et transactions avec Jakarta Persistence
@Entity
  • Accès aux données: introduction, rappels, bonnes pratiques.
  • Le mapping entre le modèle de données et le modèle objet.
  • Les opérations create, read, update, delete avec l'EntityManager.
  • Les états d'une entité: attachée, détachée, transiente.
  • Le lazy loading.
  • Les requêtes avec le langage JPQL.

Mise en pratique: déclaration d'un mapping, réalisation d'opération CRUD avec l'EntityManager, démarcation transactionnelle.

Publication et réception de messages avec Jakarta Messaging
Pub/sub
  • Présentation des concepts.
  • Les types de message et leur structure.
  • Les destinations (Topic et Queue).
  • L'envoi de messages avec le JMSContext.
  • La réception de message avec les message driven beans.

Mise en pratique: application du paradigme publish / subscribe avec le JMSContext et les message driven beans.

Création d'IHM avec Jakarta Faces
text/html
  • Le modèle et son cycle de vie.
  • Les vues et l'accès au modèle avec JSF-EL.
  • L'internationalisation.
  • La validation.
  • La gestion des exceptions.

Mise en pratique: réalisation d'un frontend pour exposer l'application développée précédemment.

Création d'une API REST avec Jakarta RESTful WebServices
...
  • Bonnes pratiques de conception d'une API REST.
  • L'écriture d'un endpoint et le routage des requêtes.
  • La validation.
  • Les providers.

Mise en pratique: réalisation d'une API REST exposer l'application développée précédemment.

Quarkus comme alternative au serveurs d'applications
GraalVM
  • Présentation de la méthodologie 12 factors app.
  • Le serveur web embarqué.
  • La compilation AOT: définition, avantages et limites.
  • La livraison sous la forme d'image OCI.

Démonstration: reprise du projet développé précédemment pour en faire une application autonome.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: