【问题标题】:Name of the Spring XML file in Spring MVCSpring MVC 中 Spring XML 文件的名称
【发布时间】:2015-07-31 17:57:20
【问题描述】:

我是 Spring MVC 的新手,当我浏览不同教程中的教程时,他们用不同的名称命名 spring XML 文件。例如“spring-web-servlet.xml”、“dispatcher-servlet.xml”、“spring-dispatcher-servlet.xml”。谁能给我解释一下为什么会这样。

【问题讨论】:

  • 请注意,任何使用 XML 显示配置的教程都已过时。 Spring Boot 和 Java 配置使您只需很少的设置。我建议查看官方 Spring Boot 入门指南。

标签: java spring-mvc web


【解决方案1】:

barunsthakur 回答的是一种通过使用上下文参数contextConfigLocation 来更改spring 配置文件的默认位置的方法。如果没有指定这个参数,spring mvc 期望如下

在 DispatcherServlet 初始化时,Spring MVC 寻找一个 WEB-INF 目录中名为 [servlet-name]-servlet.xml 的文件 网络应用

考虑以下 DispatcherServlet Servlet 配置(在 web.xml 文件):

<web-app>
    <servlet>
        <servlet-name>golfing</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>golfing</servlet-name>
        <url-pattern>/golfing/*</url-pattern>
    </servlet-mapping>
</web-app>

有了上面的 Servlet 配置,你需要有一个 应用程序中名为 /WEB-INF/golfing-servlet.xml 的文件

您的项目很可能使用默认配置,在这种情况下,您必须将配置文件的名称与 DispatcherServlet 的 servlet 名称配对

您可以在文档here中阅读更多内容

【讨论】:

    【解决方案2】:

    spring xml 文件的名称无关紧要。您可以将其命名为任何名称(语义会很好)并且需要使用相同的名称配置 web.xml。例如,如果文件名是 spring-dispatcher-servlet.xml,则在 web.xml 中添加此条目

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:META-INF/spring-dispatcher-servlet.xml
        </param-value>
    </context-param>
    

    【讨论】:

    • 但在 Eclipse IDE 中我创建了两个项目。 Spring XML 在一个项目中作为“dispatcher-servlet.xml”,在下一个项目中作为“spring-dispatcher-servlet.xml”。两个项目中的代码相同。第一个给出错误,而第二个给出预期输出。为什么会这样???
    • 更新了答案。检查您是否提供了正确的文件名。
    【解决方案3】:

    在这种情况下,我们还需要添加监听器。如果我错了,请纠正我。 org.springframework.web.context.ContextLoaderListener

    否则,我们可以通过初始化参数向 DispatcherServlet 提及“contextConfigLocation”的自定义上下文配置文件位置。

    【讨论】:

      【解决方案4】:

      <!-- <mvc:resources mapping="/resources/**" location="/resources/" /> -->
      
      <context:component-scan base-package="com.cts.bankmanagement" />
      
      【解决方案5】:

      <bean
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/jsp/" />
          <property name="suffix" value=".jsp" />
      </bean>
      
      <bean id="messageSource"
          class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
          <property name="basename" value="classpath:message"/>
          <property name="defaultEncoding" value="UTF-8" />
      </bean>
      
      <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
          destroy-method="close">
          <property name="driverClassName" value="com.mysql.jdbc.Driver" />
          <property name="url" value="jdbc:mysql://localhost:3306/bms1"/>
          <property name="username" value="root" />
          <property name="password" value="root" />
      </bean>
      
      <bean id="sessionFactory"
          class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
          <property name="dataSource" ref="dataSource" />
          <property name="configLocation" value="classpath:hibernate.cfg.xml" />
      </bean>
      
      <tx:annotation-driven />
      <bean id="transactionManager"
          class="org.springframework.orm.hibernate4.HibernateTransactionManager">
          <property name="sessionFactory" ref="sessionFactory" />
      </bean>
      
      <!-- <bean id="bookDao" class="com.hcl.dao.BookDaoImpl"> <property name="sessionFactory" 
          ref="sessionFactory" /> </bean> -->
      
      <!-- <bean id="bookService" class="com.hcl.service.BookServiceImpl"> <property 
          name="bookDao" ref="bookDao"></property> </bean> -->
      

      【讨论】:

      • ttp://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" rel="nofollow" target="_blank">hibernate.org/dtd/hibernate-configuration-3.0.dtd "> org.hibernate.dialect.MySQLDialect
      • true更新true
      猜你喜欢
      • 1970-01-01
      • 2017-12-08
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多