Annexe A - Dépendances Maven utiles
Dépendences fréquemment utilisées
Disponibles lors de la génération du projet
- Developer Tools
- Lombok (Création plus rapide des classes)
- Spring Configuration Processor (Donne l'auto complétion lors de la configuration des propriétés)
- Web
- Spring Web (Apporte les fonctionalités nécessires aux application web)
- SQL
- Sring Data JPA (ORM, permet une gestion "code first" de la base de données)
- MySQL Driver (Permet la connexion à une BD MySQL)
- Security
- Spring Security (Dépendance de base pour la sécurité)
- OAuth2 Resource Server (Fonctionalités pratiques pour la gestion des API et des mécanismes d'authetification à l'aide de jetons (tokens))
Pour ajouter des dépendances de "départ" après avoir généré le projet, ouvrez le fichier pom.xml. Localisez la balise <dependencies>. Vous devriez voir à cet endroit un bouton Add starters..., il ous ramènera au menu de départ et vous pouvez rajouter ce dont vous avez besoin.

Pour utiliser les pages JSP et balises JSTL
Ajouter les dépendences suivantes au fichier pom.xml
- Serveur pour les pages JSP
- Balises JSTL (taglib)
Pour utiliser SQLite
- Driver pour SQLite
- Dialecte pour le connecteur
Lombok
Le projet Lombok vise à rendre la vie des développeurs Java plus simple en retirant beaucoup du code redondant à écrire. À l'aide d'un système d'annotation au niveau de la déclaration d'une classe, il est possible de faire générer des versions simples des accesseurs et mutateurs, des différents constructeurs et même d'un builder.
Voici quelques unes des annotations que je suggère
@Getteret@Setter: Génère les accesseurs et mutateurs des attributs de la classe.@NoArgsConstructor,@AllArgsConstructoret@RequiredArgsConstructor: Génère les différents constructeurs de la classe.@Builder: Génère lebuilderpour la classe.@EqualsAndHashCode: Génère les surcharges des méthodes pour vérifier l'égalité d'objets Java de la même classe.@Data: Un raccourci qui combine@ToString,@EqualsAndHashCode,@Getter,@Setteret@RequiredArgsConstructor.
Attention avec l'annotation @Data dans les classes qui sont en relations N,N. L'implémentation de la méthode toString() a tendance à créer des appels récursifs et faire planter nos applications.
Pour les jetons JWT
<!-- API des jetons JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.13.0</version>
</dependency>
<!-- Implémentation de l'API JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.13.0</version>
<scope>runtime</scope>
</dependency>
<!-- Outil pour aider à la conversion des jetons JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.13.0</version>
<scope>runtime</scope>
</dependency>