首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么关系?在context-param中指定文件还是使用import?

有什么关系?在context-param中指定文件还是使用import?
EN

Stack Overflow用户
提问于 2013-04-09 01:16:58
回答 2查看 497关注 0票数 3

Spring和Hibernate堆栈。

我看到我们可以在<context-param>标签下的web.xml文件中指定多个文件。

代码语言:javascript
复制
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appcontext.xml, hibernateconfig.xml</param-value>
</context-param>

我们也可以从appcontext.xml文件中加载配置文件:

代码语言:javascript
复制
appcontext.xml:

<import resource="hibernateconfig.xml"/>

这两个是不同的还是完全不同的?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 01:56:45

这是为了灵活性。

如果需要使用多个spring配置文件,而这些文件都不是由您控制的,您会怎么做?

  1. 在web.xml中,您可以指定这两个文件,就像在第一个示例中一样,因为您不能将import元素添加到这两个文件中的任何一个。
  2. 您可以创建一个import这两个文件的新文件。

任何一种都可以工作,因为灵活性是Spring一直努力追求的东西。

作为参考,下面是每个部分的一些文档:import elementcontextConfigLocation

虽然它们用于完全相同的事情,但似乎contextConfigLocation支持Ant样式的模式匹配,而导入元素可能不支持。

票数 1
EN

Stack Overflow用户

发布于 2013-04-09 13:47:30

除了灵活性之外,我在之前的项目中注意到的一个主要区别是,如果您的上下文文件相互依赖,那么它可能会导致问题。假设您在appcontext.xml文件中为一些DAO类导入bean定义,而这又依赖于hibernateconfig.xml。如果你给出这样的条目

代码语言:javascript
复制
<param-value>/WEB-INF/appcontext.xml, hibernateconfig.xml</param-value>

然后,在web.xml中,加载DAO bean时不会将sessionFactory (来自hibernateconfig)注入其中。这有时会导致HibernateExceptions。在这种情况下,您可以在dao上下文导入之前在appContext.xml中导入hibernateconfig.xml,如下所示:

代码语言:javascript
复制
appcontext.xml:

<import resource="hibernateconfig.xml"/>
<import resource="dao-config.xml"/>

这将确保在dao配置之前加载hibernate配置。

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

https://stackoverflow.com/questions/15885105

复制
相关文章

相似问题

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