Spring Boot est le framework le plus utilise pour developper des applications Java
cote serveur. Avant d'ecrire du code, comprenons a quel probleme il repond.
1. Le probleme que resout Spring Boot
Developper une application Java d'entreprise demandait autrefois un travail de configuration
considerable : fichiers XML a rallonge, serveur a installer et parametrer, bibliotheques a assembler
une par une en verifiant leur compatibilite. On passait parfois une journee entiere avant d'afficher
la moindre page.
Spring Boot renverse cette logique : tout fonctionne par defaut, et vous ne
configurez que ce qui s'ecarte de l'ordinaire.
2. Spring ou Spring Boot ?
Spring Framework
Spring Boot
Nature
La bibliotheque de base
Une surcouche de Spring
Configuration
Manuelle, abondante
Automatique
Serveur
A installer separement
Integre a l'application
Demarrage
Long
Quelques minutes
Spring Boot n'est pas un concurrent de Spring : il s'appuie dessus. Tout ce que
vous apprendrez ici reste du Spring.
3. Les trois idees fondatrices
L'auto-configuration
Spring Boot inspecte les bibliotheques presentes dans votre projet et en deduit la configuration.
Vous ajoutez une base de donnees ? Il configure la connexion. Vous ajoutez le web ? Il demarre un
serveur.
Les starters
Un starter est un paquet de dependances coherentes. Plutot que de declarer quinze
bibliotheques en verifiant leurs versions, vous en declarez une seule.
spring-boot-starter-web <!-- tout le necessaire pour une API REST -->
spring-boot-starter-data-jpa <!-- acces aux bases de donnees -->
spring-boot-starter-security <!-- authentification -->
spring-boot-starter-test <!-- tests -->
Le serveur embarque
L'application contient son propre serveur (Tomcat par defaut). Il n'y a rien a installer : on lance
le programme, et le serveur demarre avec lui.
4. Un exemple minimal
Voici une application Spring Boot complete et fonctionnelle :
@SpringBootApplication
public class MonAppliApplication {
public static void main(String[] args) {
SpringApplication.run(MonAppliApplication.class, args);
}
}
@RestController
public class BonjourController {
@GetMapping("/bonjour")
public String bonjour() {
return "Bonjour depuis Spring Boot";
}
}
Une quinzaine de lignes, et vous disposez d'un serveur web qui repond sur
http://localhost:8080/bonjour.
5. A quoi sert Spring Boot concretement ?
Des API REST consommees par un site, une application mobile ou un front Angular
Des applications web completes avec pages generees cote serveur
Des microservices : de petites applications independantes qui communiquent
Des traitements par lots : imports, exports, calculs planifies
Les bases de donnees : notions de table et de requete SQL
HTTP : les methodes GET, POST, PUT, DELETE
Si les annotations vous semblent obscures, retenez pour l'instant ceci : une annotation est une
etiquette posee sur une classe ou une methode, qui indique a Spring comment la
traiter. Tout le cours repose la-dessus.
A retenir
Spring Boot est une surcouche de Spring qui supprime la configuration manuelle
L'auto-configuration deduit le parametrage des bibliotheques presentes
Un starter regroupe des dependances coherentes
Le serveur est embarque : rien a installer
Exercices d'application
Exercice 1. Observer une APIOuvrez une API publique dans votre navigateur (par exemple https://api.github.com/users/joelyk). Decrivez ce que vous recevez et sous quel format.
Exercice 2. Reconnaitre les startersPour chacun de ces besoins, dites quel starter utiliser : exposer une API REST, se connecter a MySQL, proteger des pages par mot de passe.
Exercice 3. Faire le point sur JavaListez ce que vous savez faire en Java : creer une classe, implementer une interface, utiliser une List, ecrire une boucle sur une collection. Ce qui manque est a revoir.
Cherchez avant de regarder la solution : c'est en butant sur les difficultes que l'on progresse.
Questions / Réponses
Aucune question. Soyez le premier à poser une question.