• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/12/2020

Mettre en place l'environnement de développement

Comme je vous le disais en introduction, nous allons faire une Tartiflette. Alors préparez votre environnement de développement :

  • four

  • plat à gratin

  • pommes de terre...

Vraiment ? Mais je n'ai pas de Reblochon sous la main !

Bon OK, j'utiliserai l'analogie de la tartiflette, mais pas seulement ! En plus, je vous propose de développer une « vraie application ». Même la tartiflette a ses limites !!

Dans ce cours, je vous propose de suivre en fil rouge la création d'un système de gestion de tickets d'incident et de demandes d'évolution.

Pour cela, il vous faudra mettre en place votre environnement de développement.

Voici celui qui j'ai retenu :

Pour la mise en place de l'environnement de développement, je vous conseille de suivre les chapitres :

Initialiser le projet

L'initialisation d'un projet Maven est abordé dans le chapitre Créez votre premier projet Maven du cours Organisez et packagez une application Java avec Apache Maven.

Afin de gagner du temps et de ne pas me répéter, je vous propose de partir du projet déja initialisé disponible sur GitHub. Il vous suffit de le télécharger et de l'importer dans votre EDI.

Ce projet contient déjà certains éléments, comme vous pourrez le voir.

Comment est organisé le projet ?

Pour vous repérer, voici le diagramme de classes du domaine fonctionnel du projet ainsi que le modèle physique de données (MPD). Tous les éléments du domaine fonctionnel ne sont pas codés.

Ticket - Diagramme de classes du domaine fonctionnel
Ticket - Modèle physique de données

Le projet est un projet Maven multi-modules, organisé suivant une architecture multi-tiers où chaque couche fait l'objet d'un module Maven.

Modules Maven du projet « Ticket »

Voici le contenu du projet :

  • Le module ticket-webapp contient l'application web. Pour plus de simplicité, l'application web ne fournit pas d'interface graphique mais uniquement des données, via une simple API proposant des webservices  (backend). Ces données sont destinées à être consommées par une interface graphique web (frontend) qui ne sera pas développée dans ce cours.

  • Le module ticket-batch contient les batchs de l'application.

  • Le module ticket-business contient la logique métier de l'application avec notamment les classes Manager.

  • Le module ticket-consumer contient les éléments d'interaction avec les services extérieurs (base de données, webservices...). S'y trouvent notamment les DAO.

  • Le module ticket-model contient les objets métiers (les beans).

  • Le module ticket-technical contient les éléments et dépendances techniques de l'application (gestion des logs...). Tous les autres modules dépendent de ce module technique.

Module ticket-model

Contenu :

  • package org.example.demo.ticket.model.bean : les objets du domaine fonctionnel (les beans).

    • les beans sont répartis dans des sous-packages (projet, ticket...)

  • package org.example.demo.ticket.model.recherche : les objets de définition des recherches (critères de recherche, de chargement...)

    • même découpage en sous-package que pour les beans

  • package org.example.demo.ticket.model.exception : les exceptions propres à l'application

Module ticket-consumer

Non implémenté dans la version fournie

Module ticket-business

Contenu :

  • package org.example.demo.ticket.business.manager : Business Managers, c'est-à-dire les gestionnaires métier liés aux beans.

    • un manager par sous-packages de beans

    • nommé du nom du sous-package suffixé par Manager (ex: ProjetManager, TicketManager...)

Module ticket-webapp

Les webservices REST fournis par l'application web utilisent l'API JAX-RS et Jersey comme implémentation. Je ne rentrerai pas dans le détail de l'implémentation de webservices REST en Java, cela n'a pas d'importance pour ce cours. Ils nous permettront un peu d'interactivité à titre d'illustration.

L'implémentation des webservices REST se trouve dans le package org.example.demo.ticket.webapp.rest :

  • sous-package resource : les Ressources REST

    • un sous-package par sous-packages de bean (projet, ticket...)

      • une classe de ressource par beans

      • nommée du nom du bean suffixé par Resource (ex: ProjetResource, TicketResource...)

Exemple de certificat de réussite
Exemple de certificat de réussite