Spring和Hibernate堆栈。
我看到我们可以在<context-param>标签下的web.xml文件中指定多个文件。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appcontext.xml, hibernateconfig.xml</param-value>
</context-param>我们也可以从appcontext.xml文件中加载配置文件:
appcontext.xml:
<import resource="hibernateconfig.xml"/>这两个是不同的还是完全不同的?
谢谢!
发布于 2013-04-09 01:56:45
这是为了灵活性。
如果需要使用多个spring配置文件,而这些文件都不是由您控制的,您会怎么做?
import元素添加到这两个文件中的任何一个。import这两个文件的新文件。任何一种都可以工作,因为灵活性是Spring一直努力追求的东西。
作为参考,下面是每个部分的一些文档:import element、contextConfigLocation
虽然它们用于完全相同的事情,但似乎contextConfigLocation支持Ant样式的模式匹配,而导入元素可能不支持。
发布于 2013-04-09 13:47:30
除了灵活性之外,我在之前的项目中注意到的一个主要区别是,如果您的上下文文件相互依赖,那么它可能会导致问题。假设您在appcontext.xml文件中为一些DAO类导入bean定义,而这又依赖于hibernateconfig.xml。如果你给出这样的条目
<param-value>/WEB-INF/appcontext.xml, hibernateconfig.xml</param-value>然后,在web.xml中,加载DAO bean时不会将sessionFactory (来自hibernateconfig)注入其中。这有时会导致HibernateExceptions。在这种情况下,您可以在dao上下文导入之前在appContext.xml中导入hibernateconfig.xml,如下所示:
appcontext.xml:
<import resource="hibernateconfig.xml"/>
<import resource="dao-config.xml"/>这将确保在dao配置之前加载hibernate配置。
https://stackoverflow.com/questions/15885105
复制相似问题