Verständnis der Abhängigkeit von Frühling 4 (Frühling Kontext)

8

ich fing gerade an, Frühling zu erlernen, und ich würde 4.0.4.RELEASE Version benutzen möchten - es ist wirklich die neueste Version, die durch maven Ablageort angeboten wird, also meine Frage ist hier: Wenn ich eine Abhängigkeit wie folgt hinzufüge:

%Vor%

-es fügt automatisch alle "Basis" -Module wie Kontext, Kern, AOP, Beans, Ausdruck in mein Projekt ein, aber zum Beispiel, wenn ich eine Abhängigkeit wie folgt hinzufüge:

%Vor%

- Es wird nur die Spring-Core-JAR-Datei in mein Projekt eingefügt. Kann mir jemand erklären, warum es so ist? Weil ich vom Tutorial und im Tutorial lerne, hat der Typ beide Abhängigkeiten hinzugefügt - & gt; Frühling-Kern und Frühling-Kontext, warum er es getan hat? er sollte nur die Abhängigkeit vom Frühling-Kontext hinzufügen und das Ergebnis wäre das gleiche, kann jemand das erklären? Danke:)

    
Charlie Harper 30.05.2014, 20:33
quelle

2 Antworten

9

Was Sie verstehen müssen, ist, dass Maven transitive Abhängigkeiten verarbeitet.

In Ihrem Fall hängt spring-context von spring-core ab, und daher deklariert Maven bei der Deklaration von spring-context in pom.xml automatisch die transitive Abhängigkeit spring-core (auf diese Weise müssen Sie die Abhängigkeiten Ihrer Abhängigkeiten und so weiter).

spring-core hat keine eigenen Spring-Abhängigkeiten. Deshalb wird, wenn Sie es selbst verwenden, keine andere Spring-Abhängigkeit zum Klassenpfad hinzugefügt

Sie können den Abhängigkeitsbaum Ihres Projekts leicht mit dem Maven Abhängigkeits-Plugin

Außerdem können Sie die Abhängigkeiten jedes Moduls auf seiner zentralen Maven-Seite sehen (falls eine existiert :)). Hier ist die relevante Seite spring-context

Zu guter Letzt, der Autor des Tutorials, dem Sie folgen, musste nicht spring-core hinzufügen, es war wahrscheinlich nur ein Versehen. Das Deklarieren von spring-core ist eine Redundanz, die kein Problem verursacht, solange die Versionen der Abhängigkeiten synchronisiert sind.

    
geoand 30.05.2014, 21:05
quelle
0
  

Es wird nur die Spring-Core-JAR-Datei in mein Projekt eingefügt, kann jemand    erkläre mir, warum es so ist wie es ist?

Es fügt nicht nur die spring-core JAR-Datei hinzu, sondern tatsächlich alle definierten Abhängigkeiten hier . (Siehe Abschnitt " Dieses Artefakt hängt von ... ab.

Das Spring-Team hat sein Framework in konsistente Module aufgeteilt, so dass es von bestimmten Projekten, die nicht das ganze Federbündel benötigen, richtig verwendet werden kann. Es gibt Bibliotheken, die nicht auf alle Kontext-JARs angewiesen sind, sondern nur auf den Kern.

Im Moment ist die aktuelle stabile Version 4.0.5.

  

Weil ich vom Tutorial und im Tutorial lerne, hat der Typ hinzugefügt    diese beiden Abhängigkeiten - & gt; Frühling-Kern und Frühling-Kontext, warum er    hat es gemacht? Er sollte nur eine Abhängigkeit vom Spring-Kontext hinzufügen und das Ergebnis wäre    das gleiche, kann jemand erklären?

Ja, das Ergebnis wäre praktisch das Gleiche.

Die Abhängigkeit spring-core muss nicht deklariert werden, wenn bereits ein spring-context deklariert ist, da der Kontext bereits vom Kern abhängt.

Sofern der Autor des Tutorials kein Eltern-POM für die Verwaltung von Abhängigkeiten aufbaute (vielleicht hätte er ein Modul, das nur von spring-core abhängig wäre), sollte er diese Abhängigkeit nicht hinzufügen, da es bei künftigen Updates im POM zu Konflikten kommen könnte . Die Deklaration zum Kern sollte entfernt werden.

    
BonanzaOne 30.05.2014 21:02
quelle

Tags und Links