我只是好奇<groupId>org.springframework</groupId <artifactId>spring-beans</artifactId>依赖是用来做什么的?同样的问题是关于spring-context的。
我没有看到对这个模块的明确依赖。春天是怎么用的?为什么不将它们包括在spring-core中
发布于 2016-10-11 14:49:14
Spring框架是分开的,以澄清和最小化其部分的依赖关系,并且您可以最小化项目所需的依赖关系。您提到的所有三个库都是核心容器的一部分,其中spring-context依赖于spring-beans,spring-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尝试mvn dependency:tree时,未显示所有传递依赖项,这是简化的)
因此,spring-expression的维护者只需要处理spring-core。较少的依赖使责任和可能性更加明确。它还阻止了您使用"all“可用,这使得处理不推荐的API变得更加困难。每个库都有自己的(非Spring)依赖项。如果Spring生态系统中的每个人和依赖于Spring的任何项目都直接依赖于所有项目,那么升级任何一个都会变得困难。大多数OpenSource库都放弃了“*-所有”依赖样式,而是将模块彼此分离,彼此之间存在明显的依赖关系。
有关更多的解释,请参见官方的Spring框架简介:核心容器。
https://stackoverflow.com/questions/39978486
复制相似问题