使用什么春豆和春天环境?

时间:2016-10-11 13:33:55

标签: spring

我只是对使用<groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>依赖项感到好奇吗?同样的问题是关于spring-context

我没有看到对此模块的明确依赖。它们如何被春天使用?为什么不将它们包括在spring-core中?

1 个答案:

答案 0 :(得分:1)

Spring Framework是分开的,以澄清和最小化其部件的依赖关系,您可以最小化项目所需的依赖关系。您提到的所有三个库都是核心容器的一部分,其中spring-context依赖于spring-beansspring-beans取决于spring-core。一些Spring库具有较少的依赖性,如spring-expression,仅依赖于核心,而不依赖于bean或上下文:

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

spring-expression
+- spring-core

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

(简化,未显示所有传递依赖关系,当使用maven try mvn dependency:tree

所以spring-expression的维护者只需处理spring-core。较少的依赖性使责任和可能性更加清晰。并且它阻止您使用“全部”可用,这使得废弃已弃用的API变得更加困难。每个库都有自己的(非Spring)依赖项。如果Spring生态系统中的每个人以及依赖于Spring的任何项目都直接依赖于所有人,那么升级其中任何一个都会变得很难。大多数OpenSource库从'* -all'依赖样式转移到彼此明确依赖的独立模块的原因之一。

有关更多说明,请参阅官方Introduction to the Spring Framework : Core Container