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:)
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.
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.