Crud avec Spring Boot et MongoDB
Ziar naleen sama gars yi (Juste pour dire Bonjour)
Ziar naleen sama gars yi (Juste pour dire Bonjour)
Aujourd’hui nous allons apprendre à créer une application Spring Boot avec MongoDB et à effectuer les opérations de base avec Spring JPA et Spring MVC.
Spring Boot ???
Spring Boot est un framework qui facilite le développement d’applications fondées sur Spring en offrant des outils permettant d’obtenir une application packagée, totalement autonome.
MongoDB ???
MongoDB est un système de gestion de base de données ou SGBD, comme Mysql ou PostgreSql, mais dont le mécanisme est complètement différent. Fini le temps ou il fallait créer un schéma de tables relationnelles et créer des requêtes Sql complexes. Grâce à MongoDB vous allez pouvoir stocker vos données un peu comme vous le feriez dans un fichier JSON. C’est à dire, une sorte de dictionnaire géant composé de clés et de valeurs. Ces données peuvent ensuite être exploitées par du javascript, directement intégré dans MongoDB, mais peuvent également être exploitées par d’autre langage comme python et bien sur Java :) .
En tant que base de données de type NoSQL, MongoDB stocke les données sous la forme d’un document. Ainsi, il offre plus de flexibilité.
Athiaa bokk… on code!!!
On aime pas trop parler. On va suivre ensemble ce tutoriel pour faire un crud. Je vais essayer d’expliquer en détail chaque partie.
1- pré requis :
Nous avons noté quelques besoins pour réaliser le projet.
- java, JDK 8
- maven
- MongoDB
- ( J’ai utilisé intelliJ comme IDE)
- Postman
2- Créer le projet
On va utiliser https://start.spring.io/ pour générer notre projet. On a ajouté comme dépendances web et mongoDb.
3- Structure du projet
Sous intelliJ voici notre structure du projet. Cela peut changer suivant l’IDE. (Eclipse 🤮)
4- Nos Dependences Maven
Voici après génération le contenu de notre fichier pom.xml.
5- Notre fichier Application Properties
Pour les config de la base de donnée, on a utilisé le fichier application.properties qui se trouve dans resources.
6- Classes Java
- Main class : CrudSpringBootMongoDbApplication.java : Rappelez-vous toujours que le point d’entrée de l’application Spring Boot est la classe contenant l’annotation @SpringBootApplication et la méthode main en statique.
- Model class : User.java
- Data-Access-Object interface : UserDao.java interface qui étend MongoRepository pour gérer automatiquement nos requêtes crud.
- Service class : UserServiceImpl.java : classe de service où nous appellerons les méthodes de l’interface Dao pour gérer les opérations SQL. Elle implémente notre interface UserService.java
- Controller class : UserController.java : permet de faire le traitement des demandes. La classe est annotée avec @RestController où chaque méthode retourne un objet de domaine sous la forme d’une réponse json au lieu d’une vue.
Démostration ( thiaw sa khirr)
run : mvn spring-boot:run
ou bien aller dans target et faire . java -jar crudSpringBootMongoDb-0.0.1-SNAPSHOT.jar
// Créer new user.
http://localhost:8088/api/mongo/users/create
// Get all users.
http://localhost:8088/api/mongo/users
// Find user by id.
http://localhost:8088/api/mongo/users/1
// Update user by id.
http://localhost:8088/api/mongo/users/5
// Delete user by id.
http://localhost:8088/api/mongo/users/1
// Delete all uers.
http://localhost:8088/api/mongo/users/deleteall
Repository du projet
https://github.com/tonux/crud-springboot-mongoDB
http://localhost:8102/api/mongo/emp/delete/1
// Delete all employees.