我是Spring的初学者,我试图通过阅读分散在互联网上的一些代码来学习它.当我查看这些代码的pom.xml时,我几乎总会看到人们使用"spring-core"和"spring-context"作为该项目的附加依赖项.当我查看依赖层次结构时,我发现spring-core已经在spring-context中了.
所以我的问题是:是否有必要同时使用它们?"spring-core"中的"spring-core"和作为单独工件的"spring-core"之间是否有区别?
And*_*cer 16
这称为传递依赖.如果你没有声明spring-core,你仍然会得到它,因为spring-context声明了它.
今天,无论你是否声明spring-core,你的代码都可以工作,因为无论如何都要通过传递依赖机制得到它.所以这是一个最佳实践问题,而不是它是否有效.
要问的问题是,为什么我需要弹簧芯?
在一个句子中,您应该明确声明您自己使用的依赖项,即使它们也是可传递的.
这对玩具项目来说并不重要.但它使大型项目的长期维护变得更加容易.
编辑:spring-core和spring-context密切相关,以上建议无关紧要.它常见的情况做事情是当你有依赖于记录包库中的L.如果你自己的代码使用L,那么你最好声明依赖性明确的,因为可以很方便地切换在将来使用一个不同的日志包.另一方面,弹簧环境不太可能切换到弹簧核心功能的不同提供商......
Andrew和Gus都对你的问题做了充分的判断.我想从Spring方面详细阐述一些事情.如果你刚开始使用Spring,我认为可以安全地假设你正在努力理解依赖注入的工作原理.
你必须用BeanFactory和过去样品ApplicationContext.事物的bean方面包含在spring-beansjar(如XmlBeanFactory等)中,而事物的上下文方面(如ClassPathXmlApplicationContext等)包含在spring-contextjar中.
但是,要使用两个依赖注入容器中的任何一个,您将使用core.io包提供的某些公共类(如ClassPathResource,FileSystemResource),这也是您的应用程序依赖于spring-corejar 的原因.
另外,请注意您在自己定义的"字符串"属性值如何web.xml自动转换为正确的数据类型,如基元或包装类型.这通过spring-corejar 提供的属性编辑器支持发生.
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |