Aller au contenu

Spring Boot : Cours et pratique

Exemple Architecture Web Angular-Spring Boot-MySQL

La majorité des applications, TP et exemples développées utilise ce type d’architecture. Ce schèma ci-dessous va vous permettre de mieux comprendre les interactions entre les Frameworks.

architecture-web-dev

Version HTML de l’image ci-dessus

Tableau qui représente une architecture avec les technologies utilisées en Front-end, Back-end et Persistance.
Front-end Back-end Persistance
Framework Angular (SPA)/ Vue Spring Boot SGBD/R
Langages TypeScript, HTML, CSS, JS Java, Jakarta EE SQL, PL/SQL, NO-SQL
Serveurs Web Application Base de données / Cloud
Types de serveur NodeJS (Angular CLI Dev Server) Tomcat / WidFly MySQL, PostgreSQL, ou autre
Ports 4200 8080 3306 (MySQL) ou 5432 (PostgreSQL)
Composants Routing, models, services (Angular) Contrôleur, Service, DTO, Repository, Entity, properties, Exception, Config... Pilote JDBC, MySQL, PostgreSQL, Oracle, schémas...

Initiation par la pratique

Spring Initialzr permet de construire rapidement la structure d’un projet Spring Boot en ligne ou bien dans votre IDE. En fait, il ajoute tous les ingrédients dans un fichier de configuration (pom.xml ou gradle.build) pour démarrer votre projet. Il vous reste bien évidemment à coder.

Découverte du framework avec Spring Initialzr

Spring et REST (JSON)

Exemple avec une classe simple Pilote et un contrôleur de type RestController qui du coup, retourne du JSON. Vous pouvez ajouter Swagger ou bien utiliser Postman ou alors tout simplement afficher les données JSON dans votre navigateur.

Créer une API Rest

Spring et JDBC avec JdbcTemplate

Dans l’exemple de code de cette partie, j’utilise volontairement des classes simples sans les annotations @Entity, @Repository, @Service, @RestController,… pour vous montrer comment cela fonctionne à la base en utilisant malgré tout un RowMapper et JDBCTemplate.

Mettre en place une connection JDBC

Spring et JPA (plus facile)

Dans le code de cet exemple, on utilise les annotations @Entity avec Mapping entre 2 entités, @Repository et @Controller. Vous pouvez ajouter des Services et des DTO avec MapStruct.

Rapide initiation au Mapping avec Hibernate

Projet intégration de Vidéo (Youtube) et BD

Projet qui permet d’utiliser les notions d’Entities, Repositories, Contrôleurs, Accès BD MySQL avec JPA en intégrant un front aux choix (HTML/JS ou VueJS, React).

Projet simple pour Spring Boot

JSON avec Spring Boot (Front JS/HTML)

Dans cet exemple, vous allez découvrir la mise en place de Front-end simple en JS/HTML avec des bibliothèques légères :

Découvrez un Back Spring Boot simple avec fronts en JS

Intégration e-commerce avec Spring Boot

Implémentation de l’API Paypal (Braintree avec SpringBoot)

Bonnes pratiques avec Spring Boot

Quelques recommandations avec des exemples…

Résumé sur la mise en place de Tests avec Spring Boot

Quelques conseils et exemples (Tests unitaires, intégration, complet)..

JavaEE et les EJB3 (sans framework)

Découvrez les EJB3 sans framework

Cours sur le Mapping

Découvrez le mapping avec JPA/Hibernate

Tous les TP pour maitrîser le mapping (ORM)

Travaux pratiques sur le Mapping

Swagger et data.sql avec Spring Boot

DTO & MapStruct

L’objectif est de séparer les entités persistantes de la couche de présentation grâce à un mapper automatique (MapStruct).

Explications et démonstration avec un exemple de code…

Découverte de l’intérêt d’utilisation les DTO avec MapStruct

Découvrez comment générer vos entities automatiquement ;)

Un projet JPA avec génération des entities

Pour gagner du temps, générez vos entités depuis votre BD.

Découvrez les Microservices avec Spring Boot et JakartaEE

Exemple simple de microservice avec Spring Boot et JakartaEE

Projets et solutions sur le Git

Vous trouverez sur ce GitHub des projets démos pratiques dont le springpratique02 qui permet de comprendre le lien entre JSON, JPA, Hibernate et SpringBoot avec une table Apprenant

Springpratique02

Récupérer les projets Eclipse-Gradle

Spring autres exercices

Application à développer avec SpringBoot

Culture

10 raisons pour se mettre à SpringBoot (ancien, mais toujours valables) :

1ère partie,
2ème partie

Les guides

https://spring.io/guides

Référence

https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/