Spring pas SpringBoot !!!

 

Dans cet article, nous allons voir la différence entre Spring et Spring Boot. Et non, c’est pas la même chose …

Qu’est-ce que Spring

Pour être simple, Spring, c’est le framework de base. Il est composé de plusieurs fonctionnalités intéressantes comme l’injection de dépendances et des modules prêts à l’emploi tels que :

  • Spring JDBC
  • Spring MVC
  • Spring Security
  • Spring AOP
  • Spring ORM
  • Spring Test

    Schéma d'architecture Spring

Il est très puissant, mais il te laisse tout configurer toi même : déclarations des beans, configuration du DispatcherServlet, du DataSource, choix et alignement des versions de chaque dépendance.

Et Spring Boot, c’est quoi ?

Spring Boot, quant à lui, c’est une couche posée par dessus de Spring. Il ne remplace pas Spring car sous le capot, on a toujours ce dernier qui tourne. Donc son rôle, c’est de supprimer presque toute cette configuration manuelle grâce à trois mécanismes.

  • L’auto-configuration : Il détecte automatiquement les bibliothèques présentes dans ton classpath et configure l’application en fonction. Par exemple, si tu ajoutes Spring MVC et un pilote de base de données, il configure tout seul le DispatcherServlet, la DataSource et un serveur web.
  • Les Starters (Dépendances simplifiées) : Fini le casse-tête de la gestion des versions et de la compatibilité entre les modules. Les starters (comme spring-boot-starter-web ou spring-boot-starter-data-jpa) regroupent un ensemble de dépendances cohérentes en une seule ligne.

     <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    

    Le Spring Boot Parent POM gère une nomenclature de versions (BOM - Bill of Materials) testées et validées ensemble.

  • Le serveur embarqué : Plus besoin de s’embêter à packager ton application dans un fichier .war pour aller le déployer manuellement sur un serveur externe (Tomcat, Jetty, etc.). Spring Boot embarque directement le serveur (Tomcat par défaut) dans ton fichier exécutable .jar. Tu n’as qu’à lancer un java -jar monapp.jar et c’est parti !

En résumé

Spring te donne un contrôle total, idéal pour comprendre le fonctionnement bas niveau ou pour des architectures très spécifiques où tu veux tout maîtriser.

Spring Boot te fait gagner un temps précieux en éliminant la configuration répétitive (boilerplate), te permettant de te concentrer directement sur la logique métier de ton application.