En tant que développeur, vous en avez l’habitude, avant de commencer à coder, il faut préparer nos outils ! 🙂
En l'occurrence, nous devons mettre en place notre environnement de développement, et je vous propose 3 étapes :
Installer MongoDB.
Créer la structure du projet.
Configurer le projet.
Installez votre BDD MongoDB
Premièrement, nous devons télécharger et installer la base de données MongoDB. Sans cela, nous n’irons pas bien loin.
Rendez-vous sur la page de téléchargement de MongoDB Community Server !
Au moment où ce cours est écrit, MongoDB est en version 5.0.3, comme le montre la copie d’écran ci-dessous :
Dans mon cas, je vais installer MongoDB sur un poste Windows, mais il est aussi disponible pour diverses distributions Linux et pour Mac OS.
Pour ce qui est des étapes d’installation, je préfère vous rediriger vers la documentation officielle qui est très bien faite à ce sujet. Cette documentation est plus précise que moi, et sera maintenue à jour. Notez que vous y trouverez également les liens pour une installation sur Windows, Linux ou Mac OS.
C’est bon ? MongoDB est prêt ? Alors continuons !
Créez la structure minimale de votre projet
Notre base de données est désormais opérationnelle ! Passons à la seconde étape : créer la structure minimale.
Comme nous l’avons vu dans le chapitre précédent, l’utilisation de Spring Data MongoDB est facilitée par l’utilisation de Spring Boot. Nous allons donc nous en servir pour initialiser notre projet et créer sa structure minimale. Une fois que cela sera fait, nous pourrons importer le projet dans notre IDE. Personnellement, j'utilise Spring Tool Suite. Mais vous êtes libre d’utiliser l’IDE de votre choix.
Pour générer la structure minimale, utilisons Spring Initializr. Remplissons les informations du formulaire :
Les valeurs par défaut pour Project, Language, Spring Boot, Packaging et Java nous conviennent très bien.
Pour les Project Metadata, je vous propose :
Group : com.openclassrooms ;
Artifact : blogDataLayer ;
Name : blogDataLayer ;
Description : Data Layer for the blog ;
Package name : com.openclassrooms.blogdatalayer.
Pour ce qui est des dependencies, une seule est nécessaire : Spring Data MongoDB. Il s’agit d’un starter de dépendances pour accéder à toutes les classes nécessaires à l’utilisation du framework Spring Data MongoDB.
Grâce à cette dépendance, notre application Java sera en capacité de communiquer avec la BDD.
Il ne vous reste plus qu’à appuyer sur le bouton ‘Generate’ pour obtenir un fichier ZIP qui contient la structure du projet.
En dézippant le fichier, vous obtenez donc le code de base, et vous pouvez l’ajouter à votre IDE grâce à la fonctionnalité d’importation d’un projet Maven. Avec Spring Tool Suite (pour Eclipse), l’import se fait via les actions suivantes : File > Import... > Existing Maven Projects.
Et voici le résultat en image au sein de mon IDE :
Passons à la troisième et dernière étape, configurer le projet.
Configurez et testez votre projet
À ce stade de la mise en place de notre environnement de développement, nous avons :
Une base de données MongoDB disponible.
Un projet Spring Boot initialisé dans notre IDE.
Est-ce à dire que les 2 peuvent interagir ensemble ?
Pas tout à fait encore ! Mais rassurez-vous, il manque peu de choses.
Ce n’est pas parce que MongoDB et l’application Java sont sur le même ordinateur qu’ils peuvent se “rencontrer”. Nous devons fournir à l’un les informations de l’autre. En l'occurrence, nous devons indiquer à l’application Java les informations de la base de données MongoDB.
Mais quelles informations ?
L’hôte qui héberge la base, le port sur lequel MongoDB écoute, ou bien encore le nom de la base.
Et comment les renseigner dans notre application ?
Bonne question ! Grâce au fichier application.properties qui est déjà présent dans notre projet.
Laissez-moi vous montrer tout cela dans la démonstration qui suit :
Voici le fichier que nous avons obtenu lors de cette démonstration :
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=blog
Assez simple, n’est-ce pas ?
Reprenons chaque propriété une à une :
spring.data.mongodb.host : permet d’indiquer l’hôte où la base de données est installée ;
spring.data.mongodb.port : permet d’indiquer le port utilisé par la base de données ;
spring.data.mongodb.database : permet d’indiquer le nom de la base de données.
Dans cette situation, la base de données MongoDB peut être jointe sans fournir un compte utilisateur autorisé. Si cela s’avère nécessaire, vous pouvez utiliser les 2 propriétés spring.data.mongodb.username et spring.data.mongodb.password.
Nous sommes prêts à tester la connexion à la base de données. Rien de plus simple, nous allons démarrer notre projet et observer son comportement. Ce dernier nous révèlera si la connexion à la base de données est opérationnelle ou non.
Si vous utilisez Spring Tool Suite, vous pouvez lancer l’application via le Boot Dashboard, comme le montre l’image ci-dessous :
Vous pouvez également démarrer l’application via la commande mvn spring-boot:run, depuis une invite de commande ou depuis votre IDE.
Si le résultat est valide, vous devriez avoir une trace (log) qui ressemble à la suivante :
Nous observons une trace qui indique “Opened connection”.
La présence de cette trace confirme que notre configuration est valide. Son absence serait signe d’une erreur de configuration.
Pour faciliter les opérations dans les prochains chapitres, je vous fournis des données à importer dans votre base MongoDB. Il s’agit de 2 collections posts et tutorials exportées dans 2 fichiers au format JSON : posts.json et tutorials.json.
Les fichiers sont téléchargeables grâce au repository GitHub du cours.
Pour importer ces données en quelques clics, la documentation de MongoDB Compass indique les étapes à suivre.
En résumé
MongoDB Community Server est une version gratuite pour utiliser une base de données MongoDB.
L’utilisation de Spring Boot facilite la connexion de l’application Java à la base de données MongoDB.
Les informations de connexion peuvent être saisies dans le fichier application.properties.
Le host, le port et le nom de la base de données peuvent suffire pour établir une connexion. Si nécessaire, le username et le password peuvent également être fournis.
C’est ainsi que nous terminons ce chapitre et la première partie du cours. Rendez-vous dans la deuxième partie du cours pour réaliser les opérations CRUD sur notre application avec Spring Data MongoDB. Mais avant, je vous propose de tester vos connaissances grâce au quiz !