Aller au contenu

SEMAINE 4 - JOUR 1 – INTRODUCTION À SPRING BOOT

Formation Java / Spring Boot pour développeur.euse.s COBOL


Objectifs

À l’issue de cette journée, vous serez capable de :

Aujourd’hui, on comprend d’abord, on utilise ensuite, puis on automatise !


Mise en contexte (avant Spring)

Jusqu’ici, vous avez :

Spring Boot ne change rien au métier, il automatise l’infrastructure. c’est-à-dire tout ce qui ne nous intéresse pas vraiment de coder.


Cours

De nombreux TP et exemples ont été testé avec Eclipse, cependant, nous allons utiliser l’IDE IntelliJ de JetBrains puisque c’est celui que les équipes utilisent. Cependant, il n’y a aucune obligation, vous pouvez utiliser l’IDE avec lequel vous êtes le plus à l’aise. Votre projet Spring Boot sera mis en place avec un POM.XML (donc du maven) et du coup, utilisable depuis n’importe quel IDE. Il n’y aura aucun impacte sur le code déployé sur GitLab.

Découverte du framework Spring Boot

Spring en détail par l’exemple

Swagger et data.sql

Projet Spring Boot Gestion des Livres

Pourquoi Spring existe-t-il ?

Problème classique en Java “pur” :

CompteDAO dao = new CompteDaoMemoire();
CompteService service = new CompteService(dao);

Ce code :


Principe fondamental : Inversion de Contrôle (IoC)

Vous déclarez l’intention, Spring s’occupe du reste !


Il joue le rôle :


Qu’est-ce qu’une application Spring Boot ?

Une application Spring Boot, c’est :


Première application Spring Boot

@SpringBootApplication
public class BanqueApplication {

    public static void main(String[] args) {
        SpringApplication.run(BanqueApplication.class, args);
    }
}

Ce code :


Les annotations

Une annotation (nous allons en utiliser plusieurs mais de manière raisonnable) :

Ce n’est pas du code magique. En fait, vous le savez, ce sont des interfaces qui ne disent pas leurs noms.


@Component pour dire à Spring “gère cet objet”

@Component
public class CompteService {
}

Spring :


Injection de dépendances

@Component
public class CompteService {

    private final CompteDAO dao;

    public CompteService(CompteDAO dao) {
        this.dao = dao;
    }
}

Lien direct avec les tests précédents

Le code testé en semaine 3 :

Spring respecte votre architecture, il ne la remplace pas.


TP – Lecture d’une application Spring Boot

Objectif

Aucun code à écrire pour l’instant.


TP – Migration douce vers Spring

Prenez un de vos projets des précédentes semaines que vous allez intégrer dans une application Spring Boot

Consignes :

  1. Annoter les services avec @Component
  2. Supprimer les new
  3. Laisser Spring faire les injections
  4. Vérifier que tout fonctionne…

Erreurs fréquentes

  1. Croire que Spring remplace la POO
  2. Copier-coller sans comprendre
  3. Mettre de la logique métier dans les annotations
  4. Recréer un main surchargé
  5. Penser que Spring est “obligatoire”
  6. Avoir peur du framework
  7. Ne pas relier Spring aux concepts précédents

Synthèse

Vous avez compris :

Spring n’est plus une boîte noire.


Les jours suivants on abordera :