当我在 Web 应用程序中保留 spring-servlet.xml 时,applicationContext.xml 未加载

applicationContext.xml is not getting loaded when I have kept the spring-servlet.xml in Web application

我正在使用 Eclipse 开发 Web 应用程序。 一个 spring MVC web 应用程序要精确。 我创建了 servlet xml 并将其映射到 web.xml。 一切正常,直到这里 & Servlet 加载 HTML 页面 但是现在我想添加一个 JPA 层。 所以我在 WEB-INF 中创建了 applicationContext.xml 并将所有与 JPA 相关的 spring 配置放在该文件中。 但是当我启动我的 web 应用程序时,与 JPA 相关的东西没有被加载。 我相信 applicationContext.xml 本身没有加载。 我在这里缺少任何想法或任何其他配置吗?

The applicationContext.xml file is not loaded by default unless you configure spring ContextLoaderListener in the web.xml or other similar configuration file.

我假设 applicationContext.xml 存在于 WEB-INF 文件夹中。

  <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
        /WEB-INF/applicationContext.xml
    </param-value>
    </context-param>

如果您有多个配置文件,您可以将它们指定为 , 分隔值,例如

<param-value> classpath:applicationContext.xml, classpath:securityContext.xml </param-value>

您之前的配置似乎有效,因为您为调度程序 servlet 提供的名称与与其关联的应用程序上下文的命名格式相匹配。

现在,由于您想要加载根 Web 应用程序上下文,因此需要在 web.xml 中定义名为 ContextLoaderListener 的侦听器,默认情况下将从 /WEB-INF/applicationContext 中读取上下文定义。xml

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>