我只是好奇<groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>
依賴項用於什麼?同樣的問題是關於spring-context
。什麼春季豆類和春天的情況下使用?
我沒有看到這個模塊的顯式依賴關係。春天他們如何使用?爲什麼他們不被納入spring-core
?
我只是好奇<groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>
依賴項用於什麼?同樣的問題是關於spring-context
。什麼春季豆類和春天的情況下使用?
我沒有看到這個模塊的顯式依賴關係。春天他們如何使用?爲什麼他們不被納入spring-core
?
Spring Framework被分離來澄清和最小化它們各部分的依賴關係,並且可以最小化項目所需的依賴關係。您提到的所有三個庫都是核心容器的一部分,其中spring-context
取決於spring-beans
和spring-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更多解釋見。
遠