TP 4 : Spring Boot & Spring Data
I. Spring Boot
Étape 1: Création d’un projet Spring Boot.
New => Project
dans 'Generators' choisir Spring Boot
Configurer :
Project: Maven
Language: Java
Spring Boot: (version par défaut)
Group: [Link]
Artifact: demo
« Next » Ajouter des dépendance (MySql Driver , Spring Data JPA et Spring Web)
Étape 2: Créer un controller “@RestController retourne directement du texte (ou JSON).”
Étape 3 : Lancer l’application en exécutant la classe main.
“Spring Boot démarre automatiquement un serveur Tomcat.”
Étape 4 : Tester
Ouvrir le navigateur :
[Link]
II. Spring Data
Étape 1 : Configuration de la base de Donnée MySql
Se connecter à MySql et créer la base de donnée db_example :
mysql> create database db_example;
mysql> create user 'springuser'@'%' identified by 'ThePassword';
mysql> grant all on db_example.* to 'springuser'@'%';
Assurer vous que la base de données est bien créée sans aucune table.
Etape 2 : Configuration du fichier des propriétés
Ajouter le code suivant dans le fichier [Link] qui se trouve dans le package :
src/main/resources/
[Link]-auto=update
[Link]=jdbc:mysql://${MYSQL_HOST:localhost}:3306/
db_example
[Link]=springuser
[Link]=ThePassword
Etape 3 : Création de l’entité et génération de la table
1. Ajouter dans le package [Link] la classe Vehicule caractérisée par les attributs
privés : id entier, codeInterne et immatriculation tous les deux string
2.Vérifier que la classe possède bien les setters et guetters ainsi que le constructeur par
défaut et paramétrique mais sans intégrer dans ce dernier l’attribut Id.
3 . Ajouter à la classe Vehicule le code lui permettant d’implémenter l’interface Serializable
4. Ajouter les annotations @Entity avant le nom de la classe, @Id et @GeneratedValue
(strategy=[Link]) avant l’attribut id. et @Column avant chaque attribut.
Remarque : Il faut s’Assurer que les imports des annotations proviennent de
[Link]
5. Exécuter la classe contenant la méthode main
6. Vérifier dans MySql après raffraichissement le changement dans la base de données
db_example, qu’est ce que vous pouvez conclure ?
Etape 4 : Implémentation des opérations CRUD de l’entité Vehicule
1. Créer l’interface VehiculeCRUD qui hérite de l’interface CrudRepository en spécifiant le
nom de la classe ainsi que le type (classe) de son ID.
package [Link];
import [Link];
public interface VehiculeCRUD extends CrudRepository<Vehicule,
Integer> {
C’est tout ! Spring va se charger d’implémenter automatiquement cette interface sous
forme de Bean qui aura accès aux opérations CRUD les plus populaires.
Etape 6 : Création du contrôleur
1. Créer une classe nommée Controleur et y ajouter le code suivant :
package [Link];
import [Link];
import [Link].*;
@[Link]
@RequestMapping(path="/VehiculeTest") =
public class Controleur {
@Autowired
private VehiculeCRUD V ;
@PostMapping(path="/ajouter")
public @ResponseBody String AjouterVoiture (@RequestParam String codeInterne,
@RequestParam String immatriculation) {
Vehicule n = new Vehicule();
[Link](codeInterne);
[Link](immatriculation);
[Link](n);
return "Ajout à la BD avec succes ";
}
@GetMapping(path="/tous")
public @ResponseBody Iterable<Vehicule> affichertous() {
// This returns a JSON or XML with the users
return [Link]();
}
}
Analyser bien le code ci-dessus et comprenez l’intérêt de chacune des méthodes.
Comment Spring procède pour retourner les données à partir de la base de données ?
Etape 7 : Teste de l’application
1. Dans la section Run as : Appliquer un Maven Clean sur le projet ensuite un Maven
generate sources
2. Télécharger et installer l’outils PostMan pour appliquer des requêtes http à l’application.,
ensuite saisir dans la barre d’adresse de postMan l’URL suivante :
[Link] en
choisissant la méthode Post
3. Vérifier la table Véhicule, qu’est ce que vous remarquez ?
4. comment faire pour récupérer via le contrôleur les données insérées en testant sur
PostMan.
5. Ajouter au contrôleur les méthodes suivants :
a. TrouverParID
b. SupprimerParID
6. Proposer une solution pour l’implémentation d’une nouvelle méthode qui permet de
Trouver un véhicule par codeInterne et immatriculation. « NE PAS UTILISER LE CODE SQL »