Vous êtes sur la page 1sur 44

DEVELOPPEMENT WEB

SPRINGBOOT
Semaine du 11 Décembre 2023

Auteur : Faguy BATCHATO


Ingénieur et développeur des applications logicielles
Enseignant à KEYCE ACADEMY
Les design pattern
Introduction

• Un design pattern est une solution éprouvée pour répondre à une problématique
récurrente de la programmation informatique.
• Littéralement, on peut traduire Design Pattern en motif de conception. On parle
donc de ce sujet durant les phases de conception du logiciel. C'est pour cela que la
plupart du temps, on représente un design pattern via le formalisme UML.
• un design pattern est indépendant d'un quelconque langage de programmation et ils
devraient plutôt avoir en tête la conception UML. Pour ce qui est du code, il serait
plus logique de parler d'« implementation patterns », d'autant que selon les langages
de programmation considérés, un même pattern peut se mettre en oeuvre avec
quelques légères variations.
Les design pattern
Les types de design pattern

• Les design patterns de construction - Creational design patterns


Il s’agit d’un ensemble de pattern ou de bonnes pratiques qui traite des mécanismes de
création d'objets qui augmentent la flexibilité et la réutilisation du code.
• Les design patterns structuraux - Structural design patterns
Les patrons structurels vous guident pour assembler des objets et des classes en de plus grandes
structures tout en gardant celles-ci flexibles et efficaces.
• Les design patterns comportementaux - Behavioral design patterns
Les patrons comportementaux s'occupent des algorithmes et de la répartition des
responsabilités entre les objets.
Les design pattern MVC

• Le pattern MVC est une façon d’organiser un code source autour de trois
piliers:
• Le Model qui représente la structure des données. Leur définition ainsi que les
fonctions qui leur sont propres et qu’elles peuvent avoir. Ce module est
complètement décoléré du code métier ou de l’affichage de telle sorte à ce que
la modification de la logique ou de l’interface n’affecte pas la structure des
données.
• La View (ou les vues) représente l’interface graphique à livrer au client qui en
fait la requête. Avoir le code lié à l’interface isolé de la logique métier ou des
données permet de faire des modifications à l’interface graphique sans avoir à
se soucier de casser du code métier ou la structure des données.
• Le(s) Controller(s) sont au cœur de la logique métier de votre application. Ils
se situent entre les vues et le model. Les requêtes qu’un client va faire depuis
l’interface graphique, la view, vont être dirigées vers un controller qui sera en
charge de manipuler les données dont il a besoin avec la brique Model, la traiter
suivant le besoin métier, puis ordonner à la view de répondre au client avec les
bons éléments.
Les design pattern MVC
Dans quel cas l’utiliser ?

• Le MVC était initialement mis en évidence pour les clients lourds disposant d’une interface
graphique utilisateur. Seulement avec le développement du web depuis les années 2000, le
pattern MVC a été de plus en plus mis en application dans les frameworks de
développement web.
• Les frameworks visant à faire du Server Side Rendering, c’est-à-dire que le serveur génère
les vues, tels que Django, Ruby on Rails, Laravel ou Symfony l’ont adopté et le proposent
aux développeurs dès le démarrage du projet. Côté framework Frontend, Angular a
également fait le choix du MVC.
• En revanche, les librairies React, puis Vue, ont fait le choix d’opter pour le pattern flux, un
autre pattern de conception pour interface qui vient lui résoudre un problème lorsque les
données sont interdépendantes dans plusieurs vues au point où MVC ne répond plus assez
bien au besoin.
Le design pattern factory

• Fabrique est un patron de conception de création qui définit une interface


pour créer des objets dans une classe mère, mais délègue le choix des types
d’objets à créer aux sous-classes.
Le design pattern factory
Problème

• Imaginez que vous êtes en train de créer une application de gestion logistique. La première version
de votre application ne propose que le transport par camion, la majeure partie de votre code est
donc située dans la classe Camion.
• Au bout d’un certain temps, votre application devient populaire et de nombreuses entreprises de
transport maritime vous demandent tous les jours d’ajouter la gestion de la logistique maritime dans
l’application.
• C’est super, n’est-ce pas ? Mais qu’en est-il du code ? La majeure partie est actuellement couplée à la
classe Camion. Pour pouvoir ajouter des Bateaux dans l’application, il faudrait revoir la base du code.
De plus, si vous décidez plus tard d’ajouter un autre type de transport dans l’application, il faudra
effectuer à nouveau ces changements.
• Par conséquent, vous allez vous retrouver avec du code pas très propre, rempli de conditions qui
modifient le comportement du programme en fonction de la classe des objets de transport.
Une annotation est un marqueur particulier (introduit par un caractère @) permettant d'ajouter une méta-données à un élément de votre programme. On peut ajouter une annotation

Le design pattern factory


Solution

• Le patron de conception fabrique


vous propose de remplacer les appels
directs au constructeur de l’objet (à
l’aide de l’opérateur new) en appelant
une méthode fabrique spéciale. Pas
d’inquiétude, les objets sont toujours
créés avec l’opérateur new, mais
l’appel se fait à l’intérieur de la
méthode fabrique. Les objets qu’elle
retourne sont souvent appelés
produits.
Une annotation est un marqueur particulier (introduit par un caractère @) permettant d'ajouter une méta-données à un élément de votre programme. On peut ajouter une annotation

Bonnes pratiques de développement


Pourquoi utiliser un design pattern ?

• L’utilité de l’utilisation d’un design pattern est évidente. Le design pattern permet notamment
d’accélérer le processus de développement. Il fournir des paradigmes de développement qui ont
fait leurs preuves, ce qui aide à gagner du temps sans avoir à réinventer des modèles chaque fois
qu’un problème apparaît.
• Comme le design pattern est créé dans le but de régler des problèmes connus, ceux-ci peuvent
être prédits avant même de devenir visibles pendant le processus de mise en œuvre. Encore une
fois, le modèle de conception accélère le processus de développement. La standardisation liée
au design pattern est aussi très utile pour faciliter la lisibilité du code.
• Pour résumer, le design pattern est utile au moment du passage d’un modèle d’analyse à un
modèle de développement. Il peut être utilisé de manière concrète dans plusieurs cas,
notamment pour la gestion du système de paie au moment de modifier un salaire et de tenir le
système au courant des changements que cela implique.
D’autres bonnes pratiques de développement
L’inversion de contrôle

• Le module au cœur du Spring Framework (Spring Core) repose fondamentalement sur un seul principe de
conception objet : l’inversion de contrôle.
• Un objet est très souvent dépendant d’autres objets pour assurer l’ensemble de ses services. En Java, une
dépendance entre deux objets est simplement indiquée par la présence d’un attribut.
• Par exemple, une classe de type Voiture peut posséder un attribut de type Moteur
• Un objet de type Voiture a une dépendance avec un objet de type Moteur. Au final, une application orientée
objet peut être perçue comme une myriade d’objets ayant des interdépendances les uns avec les autres.
• Le principe d’inversion de contrôle consiste à inverser le rapport entre un objet et l’objet dont il dépend. Si nous
reprenons l’exemple ci-dessus, nous pouvons considérer que puisqu’un objet de type Voiture est dépendant d’un
objet de type Moteur alors il peut créer ce dernier au moment de sa propre création.
D’autres bonnes pratiques de développement
L’inversion de contrôle

• Le module au cœur du Spring Framework (Spring Core) repose fondamentalement sur un seul principe de
conception objet : l’inversion de contrôle.
• Un objet est très souvent dépendant d’autres objets pour assurer l’ensemble de ses services. En Java, une
dépendance entre deux objets est simplement indiquée par la présence d’un attribut.
• Par exemple, une classe de type Voiture peut posséder un attribut de type Moteur
• Un objet de type Voiture a une dépendance avec un objet de type Moteur. Au final, une application orientée
objet peut être perçue comme une myriade d’objets ayant des interdépendances les uns avec les autres.
• Le principe d’inversion de contrôle consiste à inverser le rapport entre un objet et l’objet dont il dépend. Si nous
reprenons l’exemple ci-dessus, nous pouvons considérer que puisqu’un objet de type Voiture est dépendant d’un
objet de type Moteur alors il peut créer ce dernier au moment de sa propre création.
Framework
Qu’est ce que c’est ?

• Un framework (ou infrastructure logicielle en français ) désigne en programmation


informatique un ensemble d'outils et de composants logiciels à la base d'un logiciel ou
d'une application. C'est le framework, encore appelé structure logicielle, canevas ou
socle d'applications en français, qui établit les fondations d'un logiciel ou son squelette
applicatif
• Un framework propose une bibliothèque de fonctionnalités dans laquelle vos
développeurs vont pouvoir piocher en fonction de vos besoins. En développement,
l’utilisation d’un framework permet donc de gagner du temps. Aujourd’hui, il s’agit
d’un standard dans la construction d’un projet web ou mobile
Framework
Quels sont les différents types de framework ?

• Il existe aujourd'hui plusieurs catégories de framework utilisés couramment par les développeurs :
• Les frameworks frontend qui servent à définir ce que va voir le visiteur lorsque qu’il va arriver sur
le site. Ils utilisent des langages clients tels que le langage HTML, CSS ou Javascript. En exemple de
framework frontend on peut retrouver Vue.JS dont on a déjà parlé ici, React ou bien AngularJS.Et
les framework d'entreprises sont spécifiques aux applications utilisées par les entreprises.
• En java on distingue le framework hibernate pour gerer la persistence des données en base de
données,
• Le framework Spring
• Etc….
Spring
Qu’est que c’est ?

• C’est un framework opensource riche, gratuit qui permet de construire l’infrastructure d’une application Java et
d’en faciliter le développement. Il faut savoir qu’à ses débuts, l’application Java était un langage de
programmation, qui s’est peu à peu étendu à une variété de plateformes, allant de l’ordinateur au smartphone.
Spring est considéré comme un projet OpenSource, créé et développé par Rod Johnson en juin 2003, qui est par
ailleurs le cofondateur de SpringSource.
• Le Spring, qui a connu plusieurs versions depuis sa création, est un conteneur léger qui reste aussi
malheureusement connu pour sa configuration plutôt complexe, longue et fastidieuse. Aussi, pour lutter contre
cette mauvaise réputation, les équipes de départ ont décidé de faciliter le développement d’applications à travers
le Spring Boot, qui allège le temps consacré au démarrage d’un projet.
• Le noyau de Spring repose, quant à lui, sur un conteneur gérant l’injection des dépendances et le cycle de vie de
composants informatiques, surnommés « Beans » pour leur similitude avec des grains de café. Ces derniers
peuvent être définis à travers des fichiers de configuration rédigés soit en XML, soit en Java. Spring peut gérer
n’importe quel bean.
Spring
À quoi sert le framework Spring ?

• Spring facilite la programmation en Java, dans la mesure où il prend en charge la création et la mise
en relation d’objets via l’intermédiaire d’un fichier de configuration. Le fichier, quant à lui, contient la
description des objets à fabriquer et les relations de dépendance entre les différents objets. Le
framework Spring est ainsi utilisé principalement dans le développement d’applications d’entreprise.
• Les caractéristiques du Spring sont nombreuses et variées. Tout d’abord, le framework n’entre pas en
concurrence avec les autres, en raison de sa couche d’abstraction. Il peut en effet s’insérer au niveau
de toutes les couches et peut intégrer d’autres frameworks tels que iBATIS pour la couche de
persistance, ou encore Struts pour celle de présentation. Ensuite, le Spring diminue la quantité de
code grâce à l’intégration de frameworks. Il dispose par ailleurs d’un mécanisme de sécurité et
permet d’échanger des objets via le protocole http. Enfin, il déploie et consomme des web services
facilement. Si ses caractéristiques sont plutôt redondantes, elles garantissent néanmoins à l’utilisateur
une grande marge de manœuvre quant à la solution qui lui conviendra le mieux.
Spring
Inversion de contrôle et Injection de dépendance

• L’inversion de contrôle est un patron de


conception utilisé essentiellement dans la
programmation orientée aspect. Elle se base
sur le fait que l’application ne contrôle pas
elle-même de son exécution, mais que cette
tâche revient au framework utilisé lors de
son développement.
• En Spring Java, ce design pattern se présente
sous forme d’injection de dépendance qui
permet de découpler au maximum chaque
classe afin qu’elles au maximum indépendant
et que l’on puisse au maximum les réutiliser.
• Considérons par exemple cette classe :
Spring
Inversion de contrôle et Injection de dépendance

• Nous avons ici une manière classique d’instancier


une classe dans une autre avec Java. Maintenant, si
l’on applique l’injection de dépendance à cette
classe, nous obtenons par exemple les codes
suivants :
• Ici, on implémente la classe Addition
indépendamment de la classe Calcul et on l’injecte
seulement à cette dernière au sein de son
constructeur. On instancie donc Addition en
même temps que Calcul et le tout est géré par
Spring.
• Hormis cette méthode utilisant un constructeur
de classe, on peut également effectuer cette
inversion de contrôle à l’aide d’un setter.
Spring
MVC

• On utilise ce pattern dans Spring Java, notamment dans la partie du développement web.
• Il faut savoir que MVC peut s’incliner sous d’autres formes telles que le MVVM (Model-View-View-Model), le MVP (Model-
View-Presenter) ou le MVW (Model-View-Whatever).
• En sachant ces bases, nous pouvons maintenant définir les fonctionnalités de Spring Java.
• Grâce à l’inversion de contrôle, Spring agit comme un conteneur léger qui s’occupe de la gestion des objets et leurs
dépendances. Ainsi, les objets sont faiblement couplés tout en bénéficiant des fonctionnalités avancées concernant la
configuration et l’injection automatique.
• Toujours dans cette optique de couplage lâche, Spring sépare les applications généralement en trois couches :
• La présentation qui s’occupe de l’interfaçage homme-machine ;
• Le service qui s’occupe des aspects ;
• L’accès aux données, c’est-à-dire la connexion à la source de données ainsi que le traitement et la persistance des données.
Spring
Les composants du framework Spring Java

• Maintenant que l’on sait


comment il fonctionne, on
va voir les composants qui
entrent en jeu pour que ce
fonctionnement puisse être
effectif. Avant de détailler
chaque composant, voici
l’architecture de ce
framework :
Spring
Les projets Spring

• Outre les nombreux modules que propose Spring Java, il offre également plusieurs
projets connexes regroupés dans Spring IO (Spring Integration Objects). Ces
derniers servent à faciliter encore plus le développement d’application avec ce
framework. Nous allons voir quelques-uns d’entre eux dans cette section.
• Spring Boot
• Spring Web Flow
• Spring Tools
• Spring Cloud
• Etc…
Spring Boot
Qu’est que c’est ?

• Publiée en 2012, Spring Boot est une solution de « convention plutôt que configuration »
destinée à l’infrastructure logicielle Java Spring qui réduit la complexité de la configuration de
nouveaux projets Spring.
• Son objectif est entre autres de réduire la complexité des configurations d’une application
Spring Java. Cela permet aux développeurs de ne pas définir la même configuration partout
dans le code, ce qui les fait gagner beaucoup de temps tout en obtenant une application facile à
comprendre et à développer.
• Spring Boot sert à développer un microservice qui est une architecture permettant de
développer et de déployer des services de manière indépendante. Cela implique que chaque
service s’exécute de manière autonome, ce qui permet d’obtenir une application finale légère.
Développement d’une application web avec Spring boot
Expression du besoin

L’application web sera développé sur Spring Etudiant


boot. Il s’agit d’une application simple de - ID (entier)
gestion des personnes. Les etudiant - Matricule (chaine)
pourront étendre les fonctionnalités de - Nom & prenom (chaine)
l’application à leur convenance dans l’avenir. - Age (entier)
- Téléphone (chaine)
Il s’agit s’implement des opérations basiques + getters, setters
de CRUD. Ajouter des utilisateurs, lister des
utitilisateurs, afficher un utilisateur, modifier
un utilisateur ou supprimer un utililisateur.
Développement d’une application web avec Spring boot
Architecture metier
Service
- Increment (entier) (statique et privée)
- Base de donnée (ArrayList) (final et
privée)
+ getters, setters
Etudiant
- ID (entier)
- Matricule (chaine) IService
- Nom & prenom (chaine)
- Age (entier) + enregistrer(etudiant:Etudiant):int
- Téléphone (chaine) + modifier (etudiant:Etudiant):int
+ getters, setters + supprimer (id:int): int
+ chercherParId(id:int):Etudiant
+ listeEtudiant (): ArrayList<Etudiant>
Développement d’une application web avec Spring boot
Expression du besoin (Page d’accueil de l’application)
Développement d’une application web avec Spring boot
Expression du besoin (Ajout d’un nouvel etudiant)
Développement d’une application web avec Spring boot
Expression du besoin (Ajout d’un nouvel etudiant)
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail

Nous aurons besoin de


• Eclipse
• Maven
• Le plugin Spring tool suite à télécharger dans Eclipse.
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail
MAVEN

• Maven est un outil open source de la communauté Apache entièrement écrit en Java. Il permet d’automatiser la
gestion et la construction d’un projet Java : ce que l’on appelle communément un outil de build.
• Maven se présente comme un exécutable en ligne de commande mais il est également intégré nativement dans
les IDE les plus courants dans le monde Java : Eclipse, Intellij IDEA, NetBeans.
• Nous avons vu qu’il est possible de créer et d’exécuter des projets Java EE directement dans Eclipse. Alors
pourquoi utiliser Maven ? Si un IDE peut suffire pour gérer des projets simples, cette solution s’avère
rapidement limitée :
• Comment partager mon projet avec d’autres développeurs quand ils n’ont pas exactement la même configuration
de poste que la mienne et qu’ils n’utilisent pas le même IDE que moi ?
• Comment compiler et tester mon projet en dehors d’un IDE (par exemple dans un processus d’intégration
continue) ?
• Comment automatiser certaines tâches répétitives et limiter ainsi les erreurs ou les oublis ?
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail
Fonctionnement de MAVEN

• Maven part d’une approche très différente : il découpe le cycle de


construction du projet en phases pré-définies et le développeur peut paramétrer
ou ajouter des tâches à effectuer automatiquement pour chacune des phases.
Les principales phases dans Maven sont :
• compile : compilation du code source du projet
• test : compilation du code source des tests et exécution des tests
• package : construction du livrable (pour une application Web, il s’agit de
l’archive WAR)
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail
Fonctionnement de MAVEN

• Maven ajoute la possibilité de gérer automatiquement les dépendances logicielles. Pour


développer des applications Java EE, nous allons avoir besoin de bibliothèques
externes (les fichiers .jar en Java). Plutôt que d’aller les télécharger une à une depuis le
Web et de les ajouter dans Eclipse, nous allons signaler à Maven l’identifiant des
dépendances dont nous aurons besoin et il va se charger pour nous de les télécharger
depuis un référentiel centralisé (Maven central repository), de les stocker dans un cache
sur la machine et de les associer à notre projet.
• Enfin les concepteurs de Maven ont adopté une approche normative afin de garantir
une homogénéité entre les projets. Ainsi un projet Maven se conforme à une
organisation assez stricte des répertoires et des fichiers.
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail
Installation de MAVEN

• Maven est nativement intégré dans Eclipse.


Développement d’une application web avec Spring boot
Creer un nouveau projet eclipse

• La création d’un projet Eclipse Spring boot


est couplée à celui d’un projet Maven de
manière implicite.
• Créer un nouveau Spring starter project sur
eclipse à travers l’option file du menu Eclipse.
• Cette action va ouvrir une fénêtre
d’identification du projet tel que l’illustre cette
figure à droite.
Développement d’une application web avec Spring boot
Creer un nouveau projet eclipse
Selectionnez les composants ou les dépendances logicielles qui
serviront à construire et à developper le logiciel.
Nous aurons besoin de manière basique des composants
logiciels
- Spring boot dev tools
- Thymeleaf qui est le moteur de vues
- Spring web qui gère l’architecture MVC du projet. Il fournit
un ensemble de composants sous forme d’annotation pour
gerer les requêtes et les reponses http dans une architecture
MVC.
Ensuite valider la creation du projet.
Développement d’une application web avec Spring boot
Structure du projet généré

Spring boot pendant la création du projet génère dans le package com.keyce une classe
MonCvApplication.java. Cette cette classe est la classe principale et le point d’entrée de
notre application web. Il contient la methode static main qui exécute l’application.
C’est généralement dans cette application qu’on initialise les données de l’application.
La classe est annotée de @SpringBootApplication Cette annotation veut
simplement dire que la classe sur laquelle elle est posée est la classe principale de
l’application. Elle combine trois autres annotations couramment utilisées dans les
applications Spring Boot : @Configuration, @EnableAutoConfiguration et
@ComponentScan.
Développement d’une application web avec Spring boot
Structure du projet généré
Développement d’une application web avec Spring boot
Structure du projet généré
Nous avons structué notre projet selon l’architecture MVC.
- Les vues (les pages html) sont situées dans le repertoire templates du projet.
- Les contrôleurs interceptent les requêtes http des client. Il s’agit des fichier de classe java contenues dans le
package. Ces classes sont annotées de @Controller. Cette dernière indique à Spring boot que la classe est chargée
d’intercepter les requêtes http des utilisateurs. Les requêtes interceptées par les controleurs sont traitées par les
méthodes de la classe du controleur. Ces méthodes peuvent porter des annotations suivantes :
@GetMapping(‘’/path_identifiant_requete’’), @PostMapping(‘’/path_identifiant_requete’’), @PutMapping(«’’
/path_identifiant_requete’’). Ces annotations indique à spring boot que ces méthodes traitent respectivement les
requêtes http de type Get, POST, PUT, etc….
- Le modèle contient des classes encore dites entité qui vont permettre de manipuler les données de l’application;
voir les persister dans une base de données tierce. Il s’agit des classes du package com.keyce.modele
- Le package com.keyce.service contient des classes qui implémentent la logique metier de notre application. Il
s’agit dans le contexte du projet de la classe Service et l’interface Iservice dont elle implemente les services.
Développement d’une application web avec Spring boot
Structure du projet généré

Capture d’illustration d’un contrôleur expliqué


précédemment
Développement d’une application web avec Spring boot
Structure du projet généré
- Le dossier src/main/resources contient les ressources statiques du
projet tels que les pages web, les fichiers de style, images, js, etc..
- Static contient les fichiers js, images, css, etc.
- Template contient les pages web .html du projet.
- Le fichier application.properties est le fichier de configuration de
notre projet. C’est dans ce fichier qu’on configure les accès à une
base de données MySAL, Oracle, etc…
- Le fichier POM.xml est le fichier d’identité du projet. Il contient un
ensemble d’informations dévrivant le projet et ses dépendances.
C’est un fichier généré utill à Maven. Maven se sert pour
télécharger les librairies ou bibliothèques manquantes necessaire
pour développer notre projet.
Développement d’une application web avec Spring boot
Structure du projet généré
- Le dossier src/main/resources contient les ressources statiques du projet tels que
les pages web, les fichiers de style, images, js, etc..
- Static contient les fichiers js, images, css, etc.
- Template contient les pages web .html du projet.
- Le fichier application.properties est le fichier de configuration de notre projet. C’est
dans ce fichier qu’on configure les accès à une base de données MySAL, Oracle, etc…
- Le fichier POM.xml est le fichier d’identité du projet. Il contient un ensemble
d’informations dévrivant le projet et ses dépendances. C’est un fichier généré utill à
Maven. Maven se sert pour télécharger les librairies ou bibliothèques manquantes
necessaire pour développer notre projet.
- A mesure qu’on ajoute des dépendances dans ce fichier pom.xml, maven
téléchargement automatiquement les bibliothèques correspondantes en ligne et met
automatiquement à jour la structure du projet.
- Mavcen stocke les dépendances du projet dans un repertoire .m2 créé
automatiquement à cette effet par mavan.
Développement d’une application web avec Spring boot
Préparation de l’environnement de travail
Installation de MAVEN

• Maven est nativement intégré dans Eclipse.


Développement d’une application web avec Spring boot
Organisation en backend d’un projet Spring boot
Introduction

• Les codes sources back end d’un projet MVC sont reparti dans les package.
- Le package principal qui contient la classe principale du projet.
- Le package des classes de contrôleurs
- Le package des classes de modèles.
- Le package des classes de services métier.
Développement d’une application web avec Spring boot
Les contrôleurs
M1

M2
• Les controleurs sont chargés d’intercepter les requêtes http de fabriquer la vue
grace au moteur de vue et d’en retourner au client.
• @GetMapping indique la méthode annoté traite les requêtes de type GET
M3
• @PostMapping indique la méthode annotée traite les requêtes de type POST.
• M2 enregistre un objet étudiant passé en paramètre dans le corps de la requête
de type POST. La requête qu’elle intercepte est sous la forme
http://xxx.xxx.xxx/ajouter. Cette methode invoque ensuite
• @GetMapping("/ajout") traite les requêtes http de type http://xxx.xxx/ajout
• @GetMapping("/modif/{id}") traite les requêtes http de type
http://xxx,xxx/modifie/id par exemple. Id est le paramètre de la requête qui
peut valeur 1, 2 ou n’importe qu’elle valeur. La methode M2 de la figure M4
recupère le paramètre id passé à la requête grace à l’annotation @PathVariable.
La methode retourne une page web update,html. L’objet model encapsule les
données qui seront envoyé dans la reponse: L’objet etudiant par exemple.

M5
Développement d’une application web avec Spring boot
Les vues: Thymeleaf
Le moteur de vue thymeleaf

Le moteur utilisé pour gérer les vues est


thymeleaf.
Pour utiliser thymeleaf dans un projet de
developpement il faut inscrire ses dépendances
dans le fichier pom,xml. Maven téléchargera les
dépendances automatiquement.
Les pages web gérées par thymeleaf sont enregistré
dans le repertoire template du projet.
Les fichiers statiques css, js sont stockés dans le
repertoire static.
Développement d’une application web avec Spring boot
Les vues: Thymeleaf
Gerer une page web html avec thymeleaf

• Définit l’espace de nom dans la


balise html comme l’illustre la
figure ci-contre.
• xmlns:th="http://www.thymeleaf.org
" utilisé pour plein de choses:
• Pour

Vous aimerez peut-être aussi