Tutoriel de Spring pas à pas
Tutoriel de Spring pas à pas en pdf
...
Spring Boot : Introduction
Spring MVC un des premiers framework Spring base sur l’API Servlet de Java JEE ´ permettant de simplifier le développement d’applications web en respectant le patron de conception MVC 2
Problèmes trop de dépendance à gérer (ce qui pose souvent un problème d’incompatibilité entre les versions) beaucoup de configuration (JPA, Sécurité, contrôleurs, vues...) ˆ
Spring Boot : encore de l’abstraction
Pour éviter les problèmes de Spring MVC, Spring Boot propose :
Les démarreurs ( starter) : un démarreur est une dépendance, ´ contenant un paquet de dépendance, permettant de réaliser un ´ type de projet (Web, Rest...). Ainsi, le développeur n’a plus à gérer, lui-même le problème d’incompatibilité entre les versions. ´ l’auto-configuration : c’est-a-dire laisser Spring Boot configurer le projet à partir de dépendances ajoutées par le développeur. ´
Exemple, pour créer un projet web, il faut ajouter la dépendance ´
Spring Boot salivate :
org.springframework.boot
spring-boot-starter-web
Les demarreurs ´ Spring Boot ont la forme
spring-boot-starter-*
Exemple, pour créer un projet web, il faut ajouter la dépendance ´
Spring Boot salivate :
org.springframework.boot
spring-boot-starter-web
Les démarreurs Spring Boot ont la forme spring-boot-starter-*
Exemple, pour créer un projet web, il faut ajouter la dépendance ´
Spring Boot salivate :
org.springframework.boot
spring-boot-starter-web
Les démarreurs Spring Boot ont la forme
spring-boot-starter-*
La dependence spring-boot-starter-web inclut les six dependences savants :
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-json
org.springframework.boot
spring-boot-starter-tomcat
org.hibernate.validator
hibernate-validator
org.springframework
spring-web
org.springframework
spring-webmvc
La dépendance spring-boot-starter-web permet donc de créer un projet web contenant : un serveur Apache Tomcat
Spring Framework et Spring MVC les validateurs d’Hibernate
jackson pour les données sous format JSON ´
...
Un premier projet Spring Boot
Spring Boot : les fondamentaux
Création de projet Spring Boot
Aller dans File > New > Other
Chercher Spring, dans Spring Boot sélectionner Spring Starter Project et cliquer sur Next >
Saisir
FirstSpringBoot dans Name,
com.spring dans Group,
FirstSpringBoot dans Artifact
com.spring.demo dans Package
Cliquer sur Next >
Chercher et cocher les cases correspondantes aux Web puis cliquer sur Next >
Valider en cliquant sur Finish
Spring Boot : les fondamentaux
Pourquoi a-t-on coche la case ´ Web a la création du projet ? Pour ajouter la dépendance spring-boot-starter-web
Contenu de la section dépendances de pom.xml
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
Spring Boot : les fondamentaux
Pour la compatibilité d’apache Tomcat avec les JSP, on ajoute la dépendance suivante
org.apache.tomcat
tomcat-jasper
9.0.12
La version d’Apache Tomcat doit être la même que celles qui existent dans Maven Dépendances
Un premier projet Spring Boot
Spring Boot : les fondamentaux
Remarques
Le package contenant le point d’entrée de notre application (la classe contenant le public static void main) est com.spring.demo
Tous les autres packages dao, model... doivent être dans le package demo.
Un premier projet Spring Boot
Spring Boot : les fondamentaux
Le point de démarrage de l’application package com.spring.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FirstSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(FirstSpringBootApplication.class, args);
}
}
Mai 2018, M2I Aix en Provence 12 / 72
Un premier projet Spring Boot
Spring Boot : les fondamentaux
Explication
SpringApplication : la classe de démarrage d’une application Spring et qui va créer une instance de la classe ApplicationContext
ApplicationContext : l’interface centrale d’une application Spring permettant de fournir des informations de configuration a l’application. `
@SpringBootApplication : contient les 3 annotations suivantes
@Configuration : fait partie du noyau de Spring Framework et indique que la classe annote peut contenir des méthodes annotées
par @Bean. Ainsi, Spring Container peut traiter la classe et générer des beans qui seront utilisés par l’application. ´
@EnableAutoConfiguration : permet, au démarrage de Spring, de générer automatiquement les configurations nécessaires en fonction des dépendances ajoutées.
@ComponentScan : demande de scanner ce package contenant de Beans de configuration
Spring Boot : les fondamentaux
Pour exécuter
Faire un clic droit sur FirstSpringBoot dans Package
Explorer
Aller dans Run As et cliquer sur Spring Boot App
La console nous indique
Tomcat started on port(s): 8080 (http) with contextpath ’’
Pour exécuter ´
Faire un clic droit sur FirstSpringBoot dans Package
Explorer
Aller dans Run As et cliquer sur Spring Boot App
La console nous indique
Tomcat started on port(s): 8080 (http) with contextpath ’’
Pour exécuter
Faire un clic droit sur FirstSpringBoot dans Package
Explorer
Aller dans Run As et cliquer sur Spring Boot App
La console nous indique
Tomcat started on port(s): 8080 (http) with contextpath ’’
Resultat : message d’erreur ´
On a créé un projet web, mais on n’a aucune page HTML, JSP ou autre
Spring Boot, comme Spring MVC, implémente le patron de conception MVC, donc il nous faut au moins un contrôleur et une vue.
Le contrôleur
Le contrôleur un des composants du modelé MVC une classe Java annotée par ´ Controller ou RestController
Il reçoit une requête du contrôleur frontal et communique avec le modèle pour préparer et retourner une réponse à la vue
Le controleur
Création du contrôleur
Faire clic droit sur le projet
Aller dans new > class
Choisir le package com.spring.demo.controller
Saisir HomeController comme nom de classe
Ensuite valider
Remplac¸ons le contenu du HomeController par le code suivant :
package com.spring.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value="/hello", method = RequestMethod.GET)
public void sayHello() {
System.out.println("Hello World!");
}
}
Le contrôleur
Explication
La première ligne indique que notre contrôleur se trouve dans le package com.spring.demo.controller
Les trois imports concernent l’utilisation des annotations
L’annotation @Controller permet de déclarer que la classe suivante est un contrôleur Spring
La valeur de l’annotation @RequestMapping indique la route (/hello ici) et la méthode permet d’indiquer la méthode HTTP (get ici, c’est la méthode par défaut). On peut aussi utiliser le raccourci @GetMapping(value="/url")
Remplaçons le contenu du HomeController par le code suivant :
package com.spring.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping(value="/hello")
public void sayHello() {
System.out.println("Hello World!");
}
}
Testons tout cela
Démarrer le serveur Apache Tomcat
Aller sur l’url http://localhost:8080/hello et vérifier qu’un
Hello World! a bien été affiché dans la console (d’Eclipse)
Remarque
On peut aussi annoter le controleur par le ˆ @RequestMapping
@Controller
@RequestMapping("/hello")
public class HelloController {
...
}
DevTools outil de développement fonctionnant en mode développement permettant de redémarrer le projet après chaque changement
Dependence Maven à jouster
org.springframework.boot
spring-boot-devtools
DevTools outil de développement fonctionnant en mode développement permettant de redémarrer le projet après chaque changement `
Dependence Maven à ajouter
org.springframework.boot
spring-boot-devtools
DevTools
Devtools
Avant utilisation, il faut vider le cache du projet le mettre a jour