web-dev-qa-db-fra.com

Différence entre Spring et Spring Boot

Il y a beaucoup de gens qui m'ont conseillé d'utiliser Spring Boot au lieu de Spring pour développer REST services Web. Je veux savoir quelle est exactement la différence entre les deux?

21
Cheps

En bref

  1. Spring Boot réduit la nécessité d'écrire beaucoup de configuration et de code passe-partout.
  2. Il a une vue avisée sur Spring Platform et les bibliothèques tierces afin que vous puissiez commencer avec un minimum d'effort.
  3. Facile à créer des applications autonomes avec Tomcat/Jetty/Undertow intégré.
  4. Fournit des métriques, des contrôles d'intégrité et une configuration externalisée.

Vous pouvez en savoir plus ici http://projects.spring.io/spring-boot/

16
medvedev1088

Fondamentalement, Spring Boot est une instance d'opinion d'une application Spring.

Spring Boot est une plate-forme de développement d'applications rapide. Il utilise divers composants de Spring, mais a des subtilités supplémentaires comme la possibilité de conditionner votre application en tant que jar exécutable, qui comprend un serveur Tomcat (ou jetée) intégré. De plus, Spring Boot contient BEAUCOUP de configuration automatique pour vous (la partie avisée), où il choisira et choisira quoi créer en fonction des classes/beans disponibles ou manquants.

Je ferais écho à leur sentiment que si vous allez utiliser Spring, je ne vois aucune raison de le faire sans Spring Boot.

8
digitaljoel

Malheureusement et je veux dire par frustration personnelle avec Spring Boot, je n'ai pas encore vu de véritable liste quantifiée, où les différences sont explicitement soulignées. Il n'y a que des réserves telles que la phrase de détritus "... vue d'opinion ..." qui sont discutées.

Ce qui est clair, c'est que SpringBoot a enveloppé des groupes d'annotations Spring dans son propre ensemble d'annotations, implicitement. Obscurcissant davantage et obligeant toute personne débutant dans SpringBoot à enregistrer en mémoire ce que représente une annotation SpringBoot particulière.

Ma réponse ne présente donc aucun avantage quantifiable à la question initiale, qui est analogue à celle des auteurs de SpringBoot. Ceux derrière Spring IMO ont délibérément décidé de brouiller, ce qui reflète l'obscurité de leurs JavaDoc et API (voir les API SpringBatch à titre d'exemple, si vous pensez que je flambe), ce qui fait que l'on se demande la valeur de leur éthique open-source.

Ma quête pour trouver SpringBoot se poursuit.

4
Beezer

Spring Boot est une vue subjective des projets Spring Framework. Analysons-la à travers un programme tiré de la documentation Spring Boot.

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

C'est une API REST très simple et vous devez ajouter Spring-boot-starter-web dans ton POM.xml pour le même. Étant donné que vous avez ajouté une dépendance Starter-Web, l'annotation @EnableAutoConfiguration suppose que vous souhaitez développer une application Web et configure Spring en conséquence.

La configuration automatique de Spring Boot tente de configurer automatiquement votre application Spring en fonction des dépendances jar que vous avez ajoutées. Par exemple, si HSQLDB se trouve sur votre classpath et que vous n'avez configuré manuellement aucun bean de connexion à la base de données, Spring Boot configure automatiquement une base de données en mémoire.

Il est opiniâtre comme Maven. Maven crée pour vous une structure de projet qu'il pense être le schéma général des projets comme il ajoute src/main/Java dossier ou dossier de ressources pour vous.

Spring boot aide à un développement plus rapide. Il a de nombreux projets de démarrage qui vous aident à démarrer plus rapidement. Il comprend également de nombreuses fonctionnalités non fonctionnelles telles que: les serveurs intégrés, la sécurité, les métriques, les contrôles de santé, etc.

Référence: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation-about

1
bpjoshi