Sunday, July 10, 2016

Développement Web Java EE: JDBC, JPA, Spring (Inversion de Contrôle, Injection de Dépendances), JSF, Jasper Reports, HikariCP (Sources de Données Multiples)

Cet article regroupe une série de 8 tutoriels ayant pour objectif une prise en main en douceur du développement Web basé sur le standard Java Enterprise Edition (Java EE) et tirant profit d'outils tels que:

  • Java Persistence API (JPA), pour le mapping relationnel/objet (ORM) en considérant notamment ses implémentations par EclipseLink et Hiberante.
  • HikariCP pour gérer un pool de connexions à une (ou plusieurs) base(s) de données et ainsi optimiser la création et l'utilisation de connexions.
  • Spring core pour l'inversion de contrôle (via l'injection de dépendances), Spring AoC pour la programmation orientée aspect et Spring Security pour assister le contrôle d'accès et la gestion des sessions utilisateur.
  • Java Server Faces (JSF) pour un environnement graphique riche et flexible.
  • Jasper Reports et plus généralement la bibliothèque Java iText PDF pour faire du reporting propre, simple et pratique.
Les liens pour les tutoriels sont listés et les tutoriels correspondants décrits, ci-dessous:
  1. http://targetcode.blogspot.com/2016/03/java-et-les-bases-de-donnees-jdbc-et-jpa.html: dans ce tutoriel nous considérons dans un environnement "pas plus gros" que Java SE, la connexion à une base de données à l'aide de programmes Java: nous considérons le cas de JDBC mais aussi de JPA.
  2. http://targetcode.blogspot.com/2016/04/le-framework-spring-injection-de.html: les notions d’inversion de contrôle et de programmation orientée aspect sont abordées par ce tutoriel et illustrées à l'aide d’exemples de code faisant intervenir Spring. Toujours dans un contexte Java SE.
  3. http://targetcode.blogspot.com/2016/04/architecture-3-tiers-integration-de.html: nous présentons dans ce document une introduction à l'architecture 3-tiers. Cette présentation, théorique dans un premier lieu, est ensuite illustrée par une étude de cas qui met en pratique une intégration du framework Spring avec une implémentation de JPA. Toujours dans un contexte Java SE.
  4. http://targetcode.blogspot.com/2016/05/architecture-3-tiers-integration-de-jsf.html: nous présentons dans ce document un tutoriel mettant en place l'intégration des frameworks Java Server Faces (JSF), Spring et une implémentation de JPA. Nous passons dans ce tutoriel à un contexte Java EE.
  5. http://targetcode.blogspot.com/2016/05/securite-des-applications-web.html: nous présentons dans ce tutoriel Spring Security. L'idée est de rajouter une couche de sécurité au résultat obtenu en suivant le tutoriel numéro 4.
  6. http://targetcode.blogspot.com/2016/05/outils-de-reporting-integration-de.html: nous présentons dans ce tutoriel l'intégration de l'outil de reporting Jasper Reports à une application web Java EE. Nous présentons de même la génération de fichiers PDF à l'aide de la bibliothèque iText PDF.
  7. http://targetcode.blogspot.com/2016/05/pool-de-connexions-integration-de.html: Nous présentons dans ce document une configuration assez minimale pour mettre en place un pool de connexions au sein d'une application web respectant le standard Java Enterprise Edition (Java EE). La solution retenue est HikariCP, nous nous proposons de l'intégrer avec deux implémentations de Java Persistence API (JPA): EclipseLink et Hibernate.
  8. http://targetcode.blogspot.com/2016/06/integration-de-jpa-et-spring-plusieurs.html: Ce document présente un ensemble de configurations permettant d'utiliser différentes sources de données dans un contexte intégrant Spring et Java Persistence API (JPA). Nous traitons les cas des implémentations suivantes de JPA: EclipseLink et Hibernate. Nous traitons aussi le cas où un pool de connexions est utilisé, dans notre cas ça sera HikariCP.
Il est possible de suivre les tutoriels indépendamment ou d'utiliser le code (en téléchargement libre, en bas de chaque tutoriel). Il est conseillé pour le lecteur ayant le temps et voulant accomplir une bonne prise en main des concepts décrits de les suivre dans l'ordre.

Keywords: HikariCP, Injection de Dépendances, inversion de contrôle, Jasper Reports, java, JDBC, JPA, JSF, Sources de Données Multiples, Spring,