Spring Framework et Spring Boot - MelvinCou/cash-manager GitHub Wiki

Spring Framework et Spring Boot

Spring Framework et sa "surcouche" Spring Boot permettent de faciliter le développement en offrant des "briques" préconfigurées de fonctionnalités régulièrement utilisées dans les applications.

Pour chaque module de l'application (selon son utilité) pourra être créer via Spring Initializr (s'il s'agit d'un simple module ayant une fonction de librairie de classe, ce type de création ne sera pas nécessaire).

En passant par le site Spring Initializr(https://start.spring.io/) :

Sélectionnez les options visibles ci-dessous

image

En passant directement par l'IDE IntelliJ

Il faudra faire un clic droit sur le dossier du projet, et sélectionnez "New Module"

image

Voici l'écran de définition du module :

image

La fenêtre suivante (Next) permet de sélectionner les dépendances.

Choix des dépendances

En ce qui concerne les dépendances (à sélectionner sur la droite), en voici quelques unes qui peuvent être intéressantes pour l'application (liste loin d'être exhaustive) :

  • Spring Web : dépendance permettant de faire une application web ou une API REST et d'avoir un serveur Tomcat embarqué.
  • Spring Boot DevTools : outil permettant un restart rapide d'une application et un LiveReload.
  • Lombok : Librairie d'annotations permettant de réduire le code "répétitif" tel que les getters/setters.
  • Spring Security : permet d'implémenter l'authentification et le contrôle d'accès dans l'application.
  • Spring Data JPA : dépendance permettant d'utiliser l'ORM Hibernate avec sa surcouche Spring Data.
  • Database Drivers : pour se connecter à une base de données, Spring a besoin du driver de cette base de données (liste de base de données SQL et NoSQL).
  • Docker Compose Support : permet de générer le fichier docker-compose.yaml avec les données de la base de données sélectionnée.
  • Flyway Migration : outil permettant de gérer les migrations de la base de données.
  • Validation : outil permettant la validation des données saisies par l'utilisateur en configurant les paramètres sur les entités.

Quelques annotations utiles

A remplir au fur et à mesure

Flyway Et JPA Buddy

Flyway

Il s'agit d'une librairie compatible avec Spring permettant de gérer les fichiers de migrations. A l'initialisation du projet, un dossier ressources/db.migrations a été créé. Dans ce dossier, créer votre premier fichier de migration (script SQL) qui respecte ces conventions : V(version)[numéro]__[action].sql Exemple : V1__create_users.sql.

Ces différents scripts seront stockés dans la table flyway_schema_migration, automatiquement créée lors du premier lancement de l'application.

Pour plus d'informations, aller voir la documentation officielle https://documentation.red-gate.com/flyway/quickstart-how-flyway-works

JPA Buddy

Il s'agit d'un plugin de IntelliJ qui facilite la création des fichier de migration. Il peut prendre en compte les différentes entités créer dans l'application et génère le script SQL correspond. Prend en charge aussi les différentes relations. image

Sélectionner Flyway Versionned Migration.

image

Rajouter votre DB connection si cela n'est pas rempli automatiquement, puis OK. image

Entrer le nom du fichier (voir ci-dessus pour convention de nommage), puis valider. image

Votre nouveau fichier de migration est créé !

Pour plus d'informations, aller voir la documentation officiel https://jpa-buddy.com/documentation/