2016-10-11 95 views
1

我只是好奇<groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>依賴項用於什麼?同樣的問題是關於spring-context什麼春季豆類和春天的情況下使用?

我沒有看到這個模塊的顯式依賴關係。春天他們如何使用?爲什麼他們不被納入spring-core

回答

1

Spring Framework被分離來澄清和最小化它們各部分的依賴關係,並且可以最小化項目所需的依賴關係。您提到的所有三個庫都是核心容器的一部分,其中spring-context取決於spring-beansspring-beans取決於spring-core。有些Spring庫有更少的依賴就像spring-expression只取決於核心,但不是在豆類或上下文:

spring-context 
+- spring-beans 
    +- spring-core 

spring-expression 
+- spring-core 

spring-webmvc 
+- spring-web 
    +- spring-context 
    \- spring-aop 
+- spring-context 
\- spring-expression 

(簡化,沒有顯示所有的傳遞依賴,當使用maven嘗試mvn dependency:tree

所以spring-expression維護者只需要處理spring-core。減少依賴性使責任和可能性更加清晰。它阻止你使用「全部」,這使得擺脫棄用的API變得更加困難。每個庫都有自己的(非Spring)依賴項。如果Spring生態系統中的每個人以及任何取決於Spring的項目都直接取決於所有人,那麼升級其中的任何一個都將變得困難。其中一個原因大多數開放源代碼庫移動從「*,所有」依賴風格上相互分離有明確的依賴模塊。

對於還正式Introduction to the Spring Framework : Core Container更多解釋見。