0% ont trouvé ce document utile (0 vote)
9 vues22 pages

Chapitre 3 SpringBoot Introduction

Le document présente une introduction au framework Spring Boot, en détaillant son architecture et son utilisation dans le développement d'applications web basées sur le modèle MVC. Il aborde également les concepts d'inversion de contrôle et d'injection de dépendances, ainsi que la configuration des dépendances dans un projet Spring Boot. Enfin, il fournit des instructions sur l'exécution d'un projet sous Eclipse et la création de contrôleurs et de vues.

Transféré par

long pp
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues22 pages

Chapitre 3 SpringBoot Introduction

Le document présente une introduction au framework Spring Boot, en détaillant son architecture et son utilisation dans le développement d'applications web basées sur le modèle MVC. Il aborde également les concepts d'inversion de contrôle et d'injection de dépendances, ainsi que la configuration des dépendances dans un projet Spring Boot. Enfin, il fournit des instructions sur l'exécution d'un projet sous Eclipse et la création de contrôleurs et de vues.

Transféré par

long pp
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

27/10/2023

Développement JEE
Le Framework Spring Boot

Chapitre 3 : Introduction à Spring Boot

Sabeur ELKOSANTINI
Maître de conférences en informatique
[Link]@[Link]
[Link]

S. Elkosantini 1

Plan

▪ Chapitre 1 : Introduction aux architecture JEE


▪ Chapitre 2 : Introduction à Spring boot
▪ Chapitre 7 : Framework SpringBoot : Spring Data JPA
▪ Chapitre 8 : Framework SpringBoot : Formuaire
▪ Chapitre 9 : Framework SpringBoot : Rest et services
▪ Chapitre 10 : Framework SpringBoot : Session et sécurité

S. Elkosantini 2

1
27/10/2023

Le modèle MVC

 Introduction

▪ Objectif :

▪ organiser une application interactive en séparant :

✓ les données (Modèle )

✓ la représentation des données (Vues)

✓ le comportement de l ’application (Contrôle)

S. Elkosantini 3

Le modèle MVC

 Introduction

▪ Le modèle (M) représente la structure des données dans l ’application

▪ La vue (V) présente les données sous une certaine forme à l ’utilisateur.

▪ Le contrôleur (C) traduit les interactions utilisateur par des appels de méthodes sur le
modèle et sélectionne la vue appropriée.

S. Elkosantini 4

2
27/10/2023

Le modèle MVC

 MVC pour les applications web

Navigateur
Contrôle et vue
JSP
JSP Modèle 1

Modèle Bean BD

Modèle
Contrôleur
(Servlet)
Navigateur

Modèle
(Bean)
BD
JSP Modèle II: MVC
Viewer
(JSP)

S. Elkosantini 5

Frameworks MVC

 Les frameworks

▪ Framework = cadre de développement.

▪ Un Framework peut inclure :

✓ Un ensemble de classes généralement regroupées sous la forme de bibliothèques


pour proposer des services plus ou moins sophistiqués

✓ Un cadre de conception reposant sur les design patterns pour proposer tout ou
partie d'un squelette d'application

✓ Des recommandations sur la mise en œuvre et des exemples d'utilisation

✓ Des normes de développement

✓ Des outils facilitant la mise en œuvre

S. Elkosantini 6

3
27/10/2023

Frameworks MVC

 Les frameworks

Mais pourquoi utiliser les frameworks

▪ L'objectif d'un framework est de faciliter la mise en ouvre des fonctionnalités de


son domaine d'activité

▪ Il doit permette au développeur de se concentrer sur les tâches spécifiques de


l'application à développer plutôt que sur les tâches techniques récurrentes.

S. Elkosantini 7

Frameworks MVC

 Les frameworks

▪ Exemples de tâches techniques récurrentes telles que :


✓ l'architecture de base de l'application

✓ l'accès aux données

✓ l'internationalisation

✓ la journalisation des événements (logging)

✓ la sécurité (authentification et gestion des rôles)

✓ le paramétrage de l'application

✓ ...

S. Elkosantini 8

4
27/10/2023

Frameworks MVC

 Les frameworks

▪ La mise en œuvre d'un framework permet ainsi de :

✓ Capitaliser le savoir-faire sans "réinventer la roue"


✓ Accroître la productivité des développeurs une fois le framework pris en main
✓ Homogénéiser les développements des applications en assurant la réutilisation de
composants fiables

✓ Faciliter la maintenance notamment évolutive des applications

S. Elkosantini 9

Frameworks MVC

 Les frameworks

▪ Types de frameworks:
✓ Frameworks MVC: Struts, spring, JavaServer Faces, Stripes, etc.
✓ Framework persistances: Hibernate, JAXB, iBATIS, etc.

Le framework MVC Spring Boot

S. Elkosantini 10

10

5
27/10/2023

Frameworks MVC

 Le framework Spring

▪ Basé sur l’ API Servlet de Java JEE


▪ Permettant de simplifier le développement d’applications web en respectant le
patron de conception MVC 2

S. Elkosantini 11

11

Frameworks MVC

 Le framework Spring boot

▪ Architecture Spring Boot

S. Elkosantini 12

12

6
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Pour éviter les problèmes de Spring, Spring Boot propose :


✓ Les démarreurs (starter) : un démarreur est une dépendance, contenant un paquet de dépendance,
permettant de réaliser un type de projet (Web, Rest...). Ainsi, le développeur n’a plus à gérer, lui
même le problème d’incompatibilité entre les versions.
✓ l’auto-configuration : c’est-à-dire laisser Spring Boot configurer le projet à partir de
dépendances ajoutées par le développeur

S. Elkosantini 13

13

Frameworks MVC

 Le framework Spring boot

▪ Pour exécuter le projet sous Eclipse:


▪ Ajouter le plugin Spring tools (ou utiliser [Link] pour créer le projet
▪ Faire un clic droit sur le projet et aller dans Run As et cliquer sur Spring Boot App ou faire un
clic droit sur la classe xxxApplication dans Package Explorer, aller dans Run As et cliquer sur
Java Application

ou

S. Elkosantini 14

14

7
27/10/2023

Frameworks MVC

 Le framework Spring boot


▪ Structure d’un projet Spring Boot (Sous eclipse)

Classes

Fichiers de configuration

Configuration des
dépendances et du projet

S. Elkosantini 15

15

Frameworks MVC

 Le framework Spring boot

▪ Configuration des dépendances ([Link])


✓ Exemple: pour créer un projet web, il faut ajouter la dépendance suivante
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

▪ La dépendance spring-boot-starter-web permet donc de créer un projet web contenant :


✓ un serveur Apache Tomcat
✓ Spring Framework et Spring MVC
✓ les validateurs d’Hibernate
✓ jackson pour les données au format JSON
✓ ...
S. Elkosantini 16

16

8
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Configuration des dépendances ([Link])

La version de Maven utilisé

Le projet utilise ici le parent "spring-boot-starter-


parent" de Spring Boot en version 2.7.0"
Le projet hérite des configurations de dépendances et
des plugins Maven définis dans ce parent

Des informations sur le projet

Des informations complémentaires du projet

S. Elkosantini 17

17

Frameworks MVC

 Le framework Spring boot

▪ Configuration des dépendances ([Link])

Liste des dépendances

Le groupId et l’artifactID de
la dépendance

S. Elkosantini 18

18

9
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Configuration des dépendances ([Link])


Spécifie la configuration du processus de construction (build) du
projet.

Le groupId et l’artifactID de
la dépendance

Configuration la gestion des dépendances

S. Elkosantini 19

19

Frameworks MVC

 Le framework Spring boot

Le point de démarrage de l’application: classe de bootstraping

package [Link];

import [Link];
import [Link];

@SpringBootApplication Annotation indiquant que c’est la classe principale


public class DemoApplication { Démarre le conteneur Spring et renvoi
l’objet ApplicationContext
public static void main(String[] args) {
[Link]([Link], args);
} }

Définition d’un Bean

S. Elkosantini 20

20

10
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Les annotations pour définir les beans :


✓ @Component, @Service, or @Repository (chapitres suivants)
✓ @Configuration et utiliser @Bean pour chaque méthode de la classe

S. Elkosantini 21

21

Frameworks MVC

 Inversion de dépendances

▪ Toute application Java est une composition d'objets qui collaborent pour rendre
le service attendu

Implémentation

Problèmes ??

S. Elkosantini 22

22

11
27/10/2023

Frameworks MVC

 Inversion de dépendances

L’objectif est de diminuer le couplage entre deux ou plusieurs


objets

▪ Solution: Injection de dépendances par les interfaces

S. Elkosantini 23

23

Frameworks MVC

 Inversion de dépendances

▪ Exemple Qui va se charger de créer de cette instance ?

S. Elkosantini 24

24

12
27/10/2023

Frameworks MVC

 Inversion de dépendances

▪ Exemple : solution 1
Initialisation dans un constructeur

Problème de couplage fort

S. Elkosantini 25

25

Frameworks MVC

 Inversion de dépendances

▪ Exemple : solution 2 Injection de la dépendance par le constructeur

S. Elkosantini 26

26

13
27/10/2023

Frameworks MVC

 Inversion de dépendances dans spring boot : Spring IoC

▪ Inversion of Control (IoC): Injection par mutateur


✓ Le flux de contrôle est orienté du code tiers vers le code de l’application

▪ Retour à l’exemple: Besoin d’un composant qui :


✓ Crée une instance des classes ReservationSalleDao et ReservationSalleService
✓ Réaliser l’injection de l’objet de type ReservationSalleDao

Conteneur IoC (IoC container).

S. Elkosantini 27

27

Frameworks MVC

 Inversion de dépendances dans spring boot : Spring IoC

▪ Inversion of Control (IoC): Injection par mutateur

Conteneur IoC (IoC container).

▪ Accueille un ensemble d’objets dont il a la responsabilité de gérer le cycle de vie:


✓ Spring Framework est avant tout un conteneur IoC

Configuration des objets et de l’application


(fichier XML, annotations, classes de
configuration)

S. Elkosantini 28

28

14
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Pour exécuter le projet sous Eclipse:

2021-01-17 13:00:50.328 INFO 10368 --- [ main] [Link] :


Tomcat started on port(s): 9090 (http) with context path ''

▪ Pour changer le port par défaut :

Ajouter la ligne suivante dans le fichier resources/[Link]

[Link]=9090

S. Elkosantini 29

29

Frameworks MVC

 Le framework Spring boot

▪ Pour exécuter le projet sous Eclipse: Aller à [Link]

S. Elkosantini 30

30

15
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Le contrôleur:
✓ un des composants du modèle MVC
✓ une classe Java annotée par Controller (ou RestController)
✓ Il reçoit une requête du contrôleur frontal et communique avec le modèle pour préparer et
retourner une réponse

S. Elkosantini 31

31

Frameworks MVC

 Le framework Spring boot

▪ Le contrôleur:
package [Link];

import [Link];
import [Link];

@Controller Pour indiquer qu’il s’agit d’un contrôleur


public class appControl {
La méthode appelé par GET et
@GetMapping(value = "/index")
avec la route « index »
public void sayHello() {
[Link]("Hello World!");
}
}
Plusieurs routes pour la même
@GetMapping(value = {"/index", "/"}) méthode
S. Elkosantini 32

32

16
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Le contrôleur:

Pensez à ajouter DevTools permettant de redémarrer le projet après


chaque changement

Aller à Spring > Add DevTools

➔ Une nouvelle dépendance est ajoutée dans [Link]

<dependency> [Link]
<groupId>[Link]</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
S. Elkosantini 33

33

Frameworks MVC

 Le framework Spring boot

▪ Les vues
✓ Permettent d’afficher des données
✓ Communiquent avec le contrôleur pour récupérer ces données
✓ Doivent être créer dans le répertoire views dans src/main/webapp/ (qu’il faut le créer).

Ajouter les dépendances : spring-boot-starter-web et tomcat-embed-jasper


<dependency>
<groupId>[Link]</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

Faire la mise à jour du projet après l’ajout des nouvelles dépendances


Maven > Update project

S. Elkosantini 34

34

17
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Les vues

Ajouter les dépendances à Apache Tomcat et JSTL dans [Link]


(voir lien [Link]

Par exemple JSTL :


<dependency>
<groupId>[Link]</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

S. Elkosantini 35

35

Frameworks MVC

 Le framework Spring boot

▪ Les vues

Nouveau contenu d’[Link]

[Link]=/views/
[Link]=.jsp

Toutes les propriétés possibles de [Link] sont disponibles ici :


[Link]
[Link]

S. Elkosantini 36

36

18
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Les vues

Nouveau contenu du contrôleur

package [Link];

import [Link];
import [Link];

@Controller
public class appControl { Enlever l’extension .jsp
@GetMapping(value = "/index")
public String sayHello() {
return "index";
}
}
S. Elkosantini 37

37

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Coté contrôleur
package [Link];
import [Link];
import [Link];
import [Link];

@Controller
public class AppControl { Une interface qui permet
@GetMapping(value = "/index") d’envoyer des attributs à la
public String sayHello(Model model) { vue
[Link]("nomP", "PC");
return "index";
}
} Redirection vers la racine
redirect:/

S. Elkosantini 38

38

19
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Coté Vue

<body>
<h1>Gestion de stock</h1>
Le nom du produit est ${ nomP }

</body>

S. Elkosantini 39

39

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Coté contrôleur (ou en utilisant l’interface ModelAndView)

public ModelAndView sayHello() {


ModelAndView mv= new ModelAndView("index");
[Link]("nomP", "PC");
return mv;
}

Une classe qui permet


d’indiquer à la fois le modèle
et la vue

S. Elkosantini 40

40

20
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Lecture de paramètres des requêtes (/chemin?param1=value1)

public ModelAndView sayHello(@RequestParam(value="nom") String


nom) {
ModelAndView mv= new ModelAndView("index");
[Link]("nomP", nom);
return mv;
permet de recupérer la valeur du paramétre de la
}
requète HTTP est de l’affecter au paramètre nom
de la méthode

S. Elkosantini 41

41

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Lecture de paramètres des requêtes (/chemin?param1=value1)
Et si on ne passe pas de paramètres ?

public ModelAndView sayHello(@RequestParam(value="nom", required =


false, defaultValue = "PC") String nom) {
ModelAndView mv= new ModelAndView("index");
[Link]("nomP", nom);
return mv; Paramètre requis
}
Valeur par défaut

S. Elkosantini 42

42

21
27/10/2023

Frameworks MVC

 Le framework Spring boot

▪ Echange les beans entre les vues et les contrôleurs


Lecture de variables de chemins (/chemin/value)

@GetMapping(value = "/afficheProduit/{nom}")
public ModelAndView afficheProduit(@PathVariable String nom) {
ModelAndView mv= new ModelAndView("index");
[Link]("nomP", nom);
return mv;
} variables de chemins

Tester avec [Link]

S. Elkosantini 43

43

22

Vous aimerez peut-être aussi