Introduction
- Bonnes pratiques de conception : séparation des responsabilités, KISS, DRY, POJO.
- Présentation des principales API.
- De Java EE à Jakarta EE.
- La concurrence du framework Spring.
Environnement de travail
- Environnement Eclipse.
- Dépendances Maven.
- Tests unitaires avec Arquillian.
- Utilisation des webtools, prise en main du serveur.
Travaux pratiques
Installer l'IDE et le serveur.
Découpage n-tiers et injection de dépendances avec CDI
- Découpage en couche, approche POJO.
- Scopes et gestion de l'état.
- Injection de dépendances.
- Intercepteurs.
Travaux pratiques
Mise en place d'une application n-tiers, utilisation de CDI (injection de dépendance, etc.).
Accès aux données avec JPA
- Mapping objet relationnel (xml, annnotations).
- Lazy loading.
- Manipulation de l'API EntityManager.
- JPA-QL, API Criteria, MetaModel, EntityGraph.
- Gestion des transactions avec JTA.
Travaux pratiques
Mise en place de la couche d'accès aux données.
Architecture distribuée avec EJB et JMS
- Services techniques de l'API EJB : sécurité, remoting, accès concurrents, accès asynchrones, timers.
- Positionnement des EJB par rapport aux beans CDI.
- JMS pour les échanges de messages.
Travaux pratiques
Mise en place de services avec les EJB sessions et d'un bus d'échange de messages avec JMS.
Web et JSF
- Concepts (MVP, Presenter, View).
- Facelets, taglibs, jsf-el.
- Validation avec l’API Bean Validation
- Mise en œuvre d'Ajax.
Travaux pratiques
Mise en œuvre de JSF et d'Ajax.
Web services REST
- API JAX-RS pour les services web RESTful.
- Rappels HTTP : les verbes, les ContentType...
- CORS : cross origin shared resource. HATEOAS.
- Produire et consommer des objets via l'API Java de traitement JSON.
Travaux pratiques
Exposant des services, consommer ces services REST via un client web.
WebSockets
- Principe technique.
- Le pattern pub/sub et l’échange de messages.
- Mise en place côté serveur et client.
Travaux pratiques
Ajout d’une connexion WebSocket au client web.