web-dev-qa-db-fra.com

Que sont les bocaux `Spring-Boot-Starter`?

Dans Spring Boot, il existe des pots sur le modèle spring-boot-starter. Tous ces pots ne contiennent aucun paquet. Quelle est leur utilisation?

Dans les POM Maven, les dépendances suivantes sont ajoutées:

  • org.springframework.boot: printemps-boot-starter-web
  • org.springframework.boot: actionneur de démarreur à ressort
  • org.springframework.boot: printemps-boot-starter-security

De quels bocaux Spring Boot ai-je réellement besoin pour utiliser les fonctionnalités de ces bocaux? Mon projet n'a pas de gestion de dépendance. Mon projet est une application Spring MVC utilisant Spring Security.

38
khateeb

Ces dépendances sont censées fournir une entrée unifiée à un projet squelette ad-hoc avec toutes les dépendances required.

Ils doivent généralement être hérités de votre descripteur de projet (pom.xml) afin que vous obteniez toutes les dépendances parent avec des versions configurées. Fini le fardeau du développeur:

Les POM de démarrage sont un ensemble de descripteurs de dépendance pratiques que vous pouvez inclure dans votre application. Vous obtenez un guichet unique pour toutes les technologies Spring et les technologies connexes dont vous avez besoin, sans avoir à parcourir un exemple de code et à copier-coller des charges de descripteurs de dépendance. Par exemple, si vous souhaitez commencer à utiliser Spring et JPA pour accéder à une base de données, incluez simplement la dépendance spring-boot-starter-data-jpa dans votre projet, et vous êtes prêt à partir.

Référence, POM de démarrage du ressort.

Modifier:

Ces POM peuvent être utilisés pour synthétiser les dépendances pouvant être utilisées pour un certain type de projet, par exemple. pour un projet Spring MVC simple, les artefacts suivants doivent être inclus (Read from spring-boot-starter, spring-boot-starter-web, spring-boot-starter-security respectivement):

  • Artefacts Spring Boot:
    • org.springframework.boot: spring-boot
    • org.springframework.boot: spring-boot-autoconfigure
    • org.springframework.boot: journalisation de démarrage, démarrage
  • Spring Core, Web, MVC, artefacts de sécurité:
    • org.springframework: ressort-core
    • org.springframework: spring-web
    • org.springframework: spring-webmvc
    • org.springframework: haricots de printemps
    • org.springframework: spring-context
    • org.springframework: expression-ressort
    • org.springframework: spring-aop
    • org.springframework.security:spring-security-config
    • org.springframework.security:spring-security-web
    • org.hibernate: hibernate-validator
    • com.fasterxml.jackson.core: jackson-databind

Les artefacts sont facilement accessibles en naviguant dans les résultats de la recherche dans le répertoire maven central .

Notez qu'il ne s'agit peut-être pas d'une liste de référence complète, car certains composants risquent d'être défaillants. Les artefacts sont donc susceptibles d'être mis à jour.

23
tmarwen

En termes simples, ce sont des descripteurs de dépendance qui répertorient les dépendances transitives avec des versions testées qui fonctionnent ensemble pour vous faire gagner du temps lorsque vous essayez de rassembler des bibliothèques prenant en charge certaines facettes d'une application.

4
Alexander Suraphel

Vous pouvez également demander à maven de signaler les dépendances requises par les différents fichiers spring-boot-starter- * définis dans le fichier pom.xml du projet d'amorçage spring, à l'aide de la commande suivante

mvn dependency:resolve

Par exemple, avec spring 1.5.8.RELEASE, les bocaux suivants (et leurs versions) sont utilisés

Le format de la note est Identifiant de groupe: Identifiant d'artefact: Version: Portée

The following files have been resolved:
    com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
    org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
    aopalliance:aopalliance:jar:1.0:compile
    org.hamcrest:hamcrest-library:jar:1.3:test
    org.mockito:mockito-core:jar:1.10.19:test
    org.assertj:assertj-core:jar:2.6.0:test
    org.springframework:spring-beans:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-test:jar:1.5.8.RELEASE:test
    org.springframework.boot:spring-boot-autoconfigure:jar:1.5.8.RELEASE:compile
    org.springframework.boot:spring-boot-starter-Tomcat:jar:1.5.8.RELEASE:compile
    org.skyscreamer:jsonassert:jar:1.4.0:test
    org.yaml:snakeyaml:jar:1.17:runtime
    com.fasterxml:classmate:jar:1.3.4:compile
    org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
    org.springframework.boot:spring-boot-starter-test:jar:1.5.8.RELEASE:test
    org.hamcrest:hamcrest-core:jar:1.3:test
    com.jayway.jsonpath:json-path:jar:2.2.0:test
    org.Apache.Tomcat.embed:Tomcat-embed-websocket:jar:8.5.23:compile
    org.springframework.boot:spring-boot:jar:1.5.8.RELEASE:compile
    org.Apache.Tomcat:tomcat-annotations-api:jar:8.5.23:compile
    org.springframework:spring-context:jar:4.3.12.RELEASE:compile
    org.hibernate:hibernate-validator:jar:5.3.5.Final:compile
    javax.validation:validation-api:jar:1.1.0.Final:compile
    org.Apache.Tomcat.embed:Tomcat-embed-core:jar:8.5.23:compile
    org.springframework.boot:spring-boot-starter-logging:jar:1.5.8.RELEASE:compile
    com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile
    org.ow2.asm:asm:jar:5.0.3:test
    org.Apache.Tomcat.embed:Tomcat-embed-el:jar:8.5.23:compile
    org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
    org.springframework:spring-web:jar:4.3.12.RELEASE:compile
    ch.qos.logback:logback-core:jar:1.1.11:compile
    org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile
    org.springframework:spring-test:jar:4.3.12.RELEASE:test
    org.springframework.boot:spring-boot-starter:jar:1.5.8.RELEASE:compile
    org.springframework.security:spring-security-test:jar:4.2.3.RELEASE:test
    org.springframework.boot:spring-boot-starter-web:jar:1.5.8.RELEASE:compile
    org.springframework:spring-core:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-starter-security:jar:1.5.8.RELEASE:compile
    org.springframework.boot:spring-boot-actuator:jar:1.5.8.RELEASE:compile
    org.objenesis:objenesis:jar:2.1:test
    org.springframework:spring-expression:jar:4.3.12.RELEASE:compile
    org.springframework.boot:spring-boot-starter-actuator:jar:1.5.8.RELEASE:compile
    org.springframework.security:spring-security-config:jar:4.2.3.RELEASE:compile
    org.springframework.security:spring-security-web:jar:4.2.3.RELEASE:compile
    org.springframework:spring-aop:jar:4.3.12.RELEASE:compile
    junit:junit:jar:4.12:test
    org.slf4j:slf4j-api:jar:1.7.25:compile
    net.minidev:json-smart:jar:2.2.1:test
    org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.8.RELEASE:test
    net.minidev:accessors-smart:jar:1.1:test
    org.springframework:spring-webmvc:jar:4.3.12.RELEASE:compile
    ch.qos.logback:logback-classic:jar:1.1.11:compile
    org.slf4j:jul-to-slf4j:jar:1.7.25:compile
    com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile

Ignorez simplement les fichiers jars dotés d'une étendue de test pour le déploiement. 

Si vous n'avez pas le projet de démarrage de printemps à portée de main, créez-en simplement un à Spring Initializr , avec les démarreurs de démarrage de printemps dont vous avez besoin. Il utilise également maven wrapper , qui enveloppe la commande maven, ce qui vous fait gagner du temps lors de la configuration et de l'installation de maven séparément. 

Il suffit donc de télécharger le fichier Zip à partir de Spring Initializr, décompressez et ouvrez une invite de commande dans le dossier décompressé, puis utilisez la commande suivante.

Pour Linux/Mac OS

 ./mvnw dependency:resolve

Pour les fenêtres

 ./mvnw.cmd dependency:resolve
0
Sanj