it-swarm.com.de

Was sind Spring-Boot-Starter-Gläser?

In Spring Boot befinden sich einige Gläser im Muster von spring-boot-starter. Alle diese Gläser enthalten keine Pakete. Was ist ihre Verwendung?

In Maven-POMs werden die folgenden Abhängigkeiten hinzugefügt:

  • org.springframework.boot: spring-boot-starter-web
  • org.springframework.boot: Spring-Boot-Starter-Stellglied
  • org.springframework.boot: Spring-Boot-Starter-Sicherheit

Welche Spring Boot-Gläser brauche ich eigentlich, um die Funktionalität dieser Gläser zu verwenden? Mein Projekt hat kein Abhängigkeitsmanagement. Mein Projekt ist eine Spring MVC-Anwendung, die Spring Security verwendet.

38
khateeb

Diese Abhängigkeiten sollen einen einheitlichen Eintrag für ein Ad-hoc-Skelettprojekt mit allen erforderlichen Abhängigkeiten bereitstellen.

Sie sollten normalerweise von Ihrem Projektdeskriptor (pom.xml) geerbt werden, damit Sie alle übergeordneten Abhängigkeiten mit konfigurierten Versionen erhalten. Keine Belastung mehr auf der Entwicklerseite:

Starter-POMs sind ein Satz praktischer Abhängigkeits-Deskriptoren, die Sie in Ihre Anwendung aufnehmen können. Sie erhalten eine zentrale Anlaufstelle für die gesamte Spring- und verwandte Technologie, die Sie benötigen, ohne den Beispielcode durchzusehen und das Einfügen von Abhängigkeiten mit Abhängigkeiten zu kopieren. Wenn Sie zum Beispiel Spring und JPA für den Datenbankzugriff verwenden möchten, fügen Sie einfach die Spring-Boot-Starter-data-jpa-Abhängigkeit in Ihr Projekt ein.

Referenz, Spring Boot Starter POM.

Bearbeiten:

Diese POMs können verwendet werden, um die Abhängigkeiten zu synthetisieren, die für eine bestimmte Art von Projekt verwendet werden können, z. Für ein einfaches Spring-MVC-Projekt müssen die folgenden Artefakte enthalten sein (Lesen von Spring-Boot-Starter, Spring-Boot-Starter-Web, Spring-Boot-Starter-Sicherheit). beziehungsweise):

  • Spring Boot-Artefakte:
    • org.springframework.boot: spring-boot
    • org.springframework.boot: Spring-Boot-Autokonfiguration
    • org.springframework.boot: Spring-Boot-Starter-Protokollierung
  • Spring Core, Web, MVC, Sicherheitsartefakte:
    • org.springframework: Federkern
    • org.springframework: spring-web
    • org.springframework: spring-webmvc
    • org.springframework: spring-beans
    • org.springframework: spring-context
    • org.springframework: spring-expression
    • 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

Die Artefakte können nahtlos in den Suchergebnissen im Verzeichnis maven central repository gefunden werden.

Beachten Sie, dass es sich hierbei möglicherweise nicht um eine vollständige Referenzliste handelt, da einige Komponenten möglicherweise fehlerhaft sind, sodass die Artefakte aktualisiert werden müssen.

23
tmarwen

Einfach ausgedrückt, handelt es sich um Abhängigkeitsdeskriptoren, die transitive Abhängigkeiten mit Versionen auflisten, die getestet wurden, um zusammenzuarbeiten, um Zeit zu sparen, indem Sie versuchen, Bibliotheken zusammenzustellen, die sich um einige Facetten einer Anwendung kümmern.

4

Sie können auch maven die Abhängigkeiten angeben, die für die verschiedenen Spring-Boot-Starter- * erforderlich sind, die in der Spring-Boot-Projektdatei pom.xml definiert sind

mvn dependency:resolve

Zum Beispiel mit Feder 1.5.8.RELEASE werden die folgenden Gläser (und Versionen) verwendet

Das Hinweisformat ist Gruppen-ID: Artefakt-ID: Version: Umfang

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

Ignorieren Sie einfach die Gläser, die einen Testumfang für die Bereitstellung haben. 

Wenn Sie kein Spring-Boot-Projekt zur Hand haben, erstellen Sie einfach unter Spring Initializr ein Projekt, mit den Spring Boot-Startern, die Sie benötigen. Außerdem wird maven wrapper verwendet, der den Befehl maven umschließt, wodurch Sie Zeit sparen, wenn Sie maven separat einrichten und installieren. 

Laden Sie also einfach die Zip-Datei von Spring Initializr herunter, entpacken Sie eine Eingabeaufforderung und öffnen Sie sie im entpackten Ordner. Verwenden Sie stattdessen den folgenden Befehl

Für Linux/Mac OS

 ./mvnw dependency:resolve

Für Windows

 ./mvnw.cmd dependency:resolve
0
Sanj