Avec Objis, spécialiste formation Spring, maîtrisez la mise en oeuvre d’une application web (Spring MVC) implicant un accès données via JPA (Spring Data) et un moteur de template Thymeleaf. Constatez la valeur ajoutée de Spring Boot.
Prérequis
Votre première application Spring Boot
Objectifs
Créer un squelette de projet Spring avec Spring Boot
Programme
Partie 1 : génération squelette projet
Partie 2 : analyse squelette projet
Partie 3 : paramétrage pour JPA
Partie 4 : Paramétrage pour web
Partie 5 : paramétrage pour thymeleaf
Durée
20 min.
Partie 1 : génération squelette projet Maven
Le site (start.spring.io) permet de créer le squelette d’arborescence d’un projet Spring basé sur Spring Boot.
L’interface est similaire à l’interface de l’assistant création de projet Spring boot de SpringSource ToolSuite (STS) .
Sélédctionez les options : web , jpa, thymeleaf
Choisissez un build Maven
descenderzz plus bas dans la page…
validez
Enregistrez le zip généré sur votre disque.
Dézippez
Expliquez
SQUELETTE PROJET
gestionformations-v0-squelette-spring-initializr
Partie 2: analyse arborescence squelette projet Maven
QUESTION : Expliquez la ligne 10 (Bootstrap) . Pourquoi une méthode main() alors que nous avons sélectionné une application type ‘war’ ?
QUESTION : A l’aide de la documentation de l’API Spring Boot, expliquez la ligne 6 ( l’annotation @SpringBootApplication )
Expliquez les annotations @Configuration, @ComponentScan, et @EnableAutoConfiguration de Spring Boot.
Cette dernière Annotation (auto-configuration) est la clé de voute de Spring Boot (C’est un peut comme si vous écriviez @Abracadabra) .
INFO : Spring Boot va par exemple détecter :
Si la class JdbcTempate est dans le classpath. Si c’est le cas, ey s’il y a un bean DataSource, il va automatiquement configurer le bean.
Si le moteur de template Thymeleaf est dans le classpath. Alors il va configurer un Bean Resolver (Spring MVC) et moteur de template Tymeleaf.
Si SpringBoot détecte Spring security dans le classpath, il va mettre en oeuvre une configuration basique de sécurité.
C’est ainsi plus de 200 décisions que Spring Boot va réaliser et en déduire ou non une configuration
Fichier (optionnel) application.properties
Classe de test
Configuration par défaut pom.xml
3 sections clés :
— > 1) dépendance du starter parent
— > 2) dépendances spécifiques aux ‘starters’ (web, jpa, thymeleaf)
— > 3) paramétrage Tomcat
Starter parent
Starter spécifiques au projet
Starters spécifiques
Dépendance Tomcat
Paramétrage JPA
3 étapes clés :
— > 1) Ajout dépendances MySQL dans le pom.xml
— > 2) Ajout des informations connection DB dans application.properties
— > 3) Ajout du Dialecte du fournisseur de persistence
Etape 1 : Ajout dépendances MySQL dans le pom.xml
Etape 2 : informations de connexion à MySQL
Notez que le fichier application.properties est par défaut vide.
Ajoutez les lignes suivantes
Expliquez.
Etape 3 : Dialecte Hibernate MySQL
Ajouter la ligne suivante (surlignée):
Expliquez.
Déploiement Maven
vérifiez que le serveur de base de données MySQL est démaré et qu’une base de données nommée ‘formation’ (à créer , vide) existe.
Lancez la commande : mvn spring-boot:run à partir du répertoire du projet
La dernière ligne de log indique que l’application est déployée
A ce stade, la base de données ne contient aucune table.
Ajouter le code de la classe Formation suivante :
Arrêter et redéployer le projet avec mvn spring-boot:run
Notez désormais la création de la table ‘formation’ dans la base de données
DAO Spring Data
Analysez le code suivant, assoicé à l’interface du DAO permettant de réaliser des opréations de lecture, écriture, modification et suppression (CRUD) de formation en base de données .
En utilisant l’API Spring Data, Expliquez le rôle de l’interface JPaRepository
QUESTION : Combien de méthodes sont disponibles dans JPaRepository ?
Qu’en est t’il de l’implémentation de cette interface ?
Paramétrage web : controlleur + écran
Les couche domaine métier (Formation.java) et Dao (FormationRepository) de notre projet sont en place.
Cependant , puisqu’il n’y a aucun controlleur Spring, l’accès à http://localhost:8080 donne une page d’erreur.
Faisons évoluer le code de la classe GestionFormationsApplication initiale
Expliquez les nouvelles lignes lignes 5, 6, 8, 12, 13, 14, 15
Arrêter (CTRL+C) et redéployez (mvn spring-boot:run)
Accéder à nouveau à localhost://8080
Expliquez.
Désormais l’application est cablée coté JPA. et coté un minimum Web. Cependant l’application n’est pas fonctionnelle.
Il nous faut ajouter des écrans permettant l’interaction avec un utilisateur :
un écran permettant. de saisir une formation (Thème, description),
un écran permettant de lister les formations par thème
Nombreuses sont les technologies possible pour le front . Ces technologies devront interagir avec Spring à travers un controleur Spring.
Analysez le code suivant .
Expliquez.
PROJET AVEC DOMAINE + DAO + CONTROLLEUR
gestionformations-v1-domaine-dao-controlleur
A VOUS DE JOUER : proposez désormais en utilisant les technologies HTML + JSP + JSTL le code des deux écrans présentés ci-dessus.
Paramétrage thymeleaf
Thymeleaf est un moteur de template XML / XHTML / HTML5 fait en java. Il est de plus en plus utilisé et s’intègre très bien avec Spring MVC.
Conclusion
Dans ce tutoriel vous avez créé une application Spring implicant du web, du Jpa ainsi que le moteur de template Thymeleaf.
Vous avez utilisé Spring Boot pour vous faciliter les taches de configuration.
Abidjan Java Meetup
Les tutoriels Spring Boot sont rédigés par l’antenne Objis Côte d’Ivoire, qui anime le rendez-vous mensuel de la communauté Java de Côte d’Ivoire : Abidjan Java Meetup, .
Dans le cadre du Meetup dédié à Spring Boot co-animé par Josh LONG, expert international Spring de chez Pivotal, et Serge Komi INNOCENT , consultant formateur Objis spécialiste Spring, nous avons proposé de partager aux développeurs Spring de Côte d’Ivoire et du monde entier notre savoir-faire sur Spring Boot.
Devenez certifié ‘Développeur Concepteur Java’
Exprimez-vous comme un développeur professionnel. Utilisez les bons mots au bon moment. Concevez et développez avec assurance des applications Java Web Mobile. Rassurez vos futurs employeurs et clients. Devenez Certifié ‘Développeur Concepteur Java’ Objis. + d’informations.