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).
https://start.spring.io/) :
En passant par le site Spring Initializr(Sélectionnez les options visibles ci-dessous
En passant directement par l'IDE IntelliJ
Il faudra faire un clic droit sur le dossier du projet, et sélectionnez "New Module"
Voici l'écran de définition du module :
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.
Sélectionner Flyway Versionned Migration.
Rajouter votre DB connection si cela n'est pas rempli automatiquement, puis OK.
Entrer le nom du fichier (voir ci-dessus pour convention de nommage), puis valider.
Votre nouveau fichier de migration est créé !
Pour plus d'informations, aller voir la documentation officiel https://jpa-buddy.com/documentation/