首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有必要在Spring项目中同时使用spring-core和spring-context依赖关系吗?

有必要在Spring项目中同时使用spring-core和spring-context依赖关系吗?
EN

Stack Overflow用户
提问于 2013-05-21 23:47:20
回答 2查看 3.8K关注 0票数 5

我是Spring的初学者,我试图通过阅读互联网上散布的一些代码来学习Spring。当我查看这些代码的pom.xml时,我几乎总是看到人们使用"spring-core“和"spring-context”作为该项目的附加依赖项。当我查看依赖层次结构时,我发现spring-core已经在spring-context中了。

所以我的问题是:有必要同时使用这两种方法吗?在"spring-context“中的"spring-core”和作为单独工件的"spring-core“有区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-22 00:00:09

这就是所谓的传递依赖。如果你没有声明spring-core,你仍然会得到它,因为spring-context声明了它。

不管你是否声明了spring-core,你的代码现在都可以工作,因为你无论如何都要感谢可传递的依赖机制。所以这是一个最佳实践的问题,而不是它是否有效的问题。

要问的问题是,为什么我需要spring-core?

spring如果你的代码没有直接引用它,那么你就不需要它,即使-

  • 引用了。因此,让spring-context负责声明它需要spring-core。如果你的代码确实直接引用了来自

-

  • 的东西,那么你确实需要它,不管spring-context是否需要它。也许在未来的版本中,spring-context将不再依赖于spring-core。因此,您应该声明spring-core.

在一句话中,你应该显式地声明你自己使用的那些依赖项,即使它们也是传递性引入的。

这在玩具项目中并不重要。但它使大型项目的长期维护变得容易得多。

编辑: spring-core和spring-context紧密地联系在一起,上面的建议无关紧要。当你有一个依赖于日志包L的库A时,这确实很重要。如果你自己的代码使用L,那么你最好显式地声明这个依赖,因为A将来可以很容易地切换到使用不同的日志包。另一方面,spring-context不太可能为spring-core的功能切换到不同的提供者...

票数 16
EN

Stack Overflow用户

发布于 2013-05-22 00:16:05

Andrew和Gus都完全公正地回答了你的问题。我只想从Spring方面详细阐述一些东西。如果您刚刚开始使用Spring,我认为可以放心地假设您可能正在努力理解依赖注入是如何工作的。

您一定是在复习BeanFactoryApplicationContext的示例。bean方面的内容包含在spring-beans jar中(如XmlBeanFactory等)。以及事物的上下文方面(如ClassPathXmlApplicationContext等)包含在spring-context jar中。

但是,要使用两个依赖注入容器中的任何一个,您都需要使用某些公共类(如ClassPathResourceFileSystemResource),这些类是由core.io包提供的,这也是您的应用程序依赖于spring-core jar的原因。

另外,请注意您在web.xml中定义的"string“属性值如何自动转换为正确的数据类型,如原语或包装器类型。这是通过spring-core jar提供的属性编辑器支持实现的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16674175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档