Menu

Introduction au langage Java et à l'écosystème Spring - 2015

Ce cours tutoriel est le fruit de plusieurs années d’enseignement à Polytech Angers.

Il est destiné à des étudiants débutants souhaitant apprendre Java dans une optique J2E (Java Edition Entreprise), ç-à-d dans une optique professionnelle, sachant que les recrutements de développeurs juniors à Bac+5 se font principalement dans ce domaine. Ce n’est pas un cours J2E mais un cours qui en pose les bases. Pour cette raison, le document utilise abondamment l’écosystème Spring. Que ce soit [Spring Core] pour les architectures en couches, la programmation par interfaces et l’injection de dépendances, [Spring Data] pour accéder aux bases de données relationnelles via une couche JPA (Java Persistence API), [Spring MVC] pour exposer une API jSON sur le web, [Spring RestTemplate] pour dialoguer avec ce service web et [Spring Security] pour en sécuriser l’accès.

Le document est à la fois un TD (Travail Dirigé) d’université et un cours. Une application à construire sert de fil rouge tout au long du document. Construite en version 1 avec une unique classe sans objets, elle va évoluer jusqu’à une application client / serveur sécurisée. Les concepts sont d’abord introduits avec des exemples expliqués en détail et dont le code est fourni. On demande ensuite à l’étudiant d’appliquer le concept qu’il vient d’étudier, à l’application du TD.

Bien que le document aborde beaucoup de domaines, il reste un document d’apprentissage du langage Java. Il est demandé peu de pré-requis, seulement les chapitres 1 à 3 du cours « Introduction au langage Java« .

Le contenu du document est le suivant :

  • chap 01 : introduction ;
  • chap 02 [TD] : le problème du TD – résolution par un programme Java sans classes ;
  • chap 03 [TD] : résolution du TD par un programme Java avec des classes ;
  • chap 04 [Cours / TD] : architectures en couches et programmation par interfaces ;
  • chap 05 [Cours] : introduction au framework Spring ;
  • chap 06 [Cours] : introduction à l’API JDBC ;
  • chap 07 [TD] : implémentation de la couche [DAO] du TD avec l’API JDBC – tests unitaires ;
  • chap 08 [TD] : implémentation de la couche [métier] du TD – tests unitaires ;
  • chap 09 [TD] : implémentation de la couche [présentation] du TD avec une application console ;
  • chap 10 [TD] : implémentation de la couche [présentation] du TD avec une application Swing ;
  • chap 11 [Cours] : gestion des bases de données relationnelles avec Spring Data JPA ;
  • chap 12 [TD] : implémentation de la couche [DAO] du TD avec Spring Data JPA ;
  • chap 13 [Cours] : exposer une base de données sur le web avec Spring MVC – écriture d’une application client / serveur où le serveur délivre du jSON ;
  • chap 14 [TD] : exposition sur le web de la couche [métier] du TD ;
  • chap 15 [TD] : création d’un client pour le service web / jSON de la couche [métier] du TD ;
  • chap 16 [Cours] : sécuriser l’accès à un service web avec Spring Security ;
  • chap 17 [TD] : sécurisation du serveur web / jSON du TD ;
  • chap 18 [Cours] : gestion des accès inter-domaines ;
  • chap 19 [TD] : application des requêtes inter-domaines au TD ;
  • chap 20 [Cours / TD] : programmation asynchrone avec RxJava – portage de la couche [métier] synchrone du TD en une couche [métier] asynchrone ;

Cette première étude de cas est complétée de huit autres dont on donne le squelette d’une solution à compléter par l’étudiant.

Serge Tahé, janvier 2019

Téléchargements

Le cours tutoriel au format PDF 

L’archive RAR des projets du cours tutoriel  

Ce cours tutoriel écrit par Serge Tahé est mis à disposition du public selon les termes de la Licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage dans les Mêmes Conditions 3.0 non transposé.