这是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome -->
<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/*.xml
        </param-value>
</context-param>
<!-- Handles all requests into the application -->
<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring/*.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Maps all /app requests to the DispatcherServlet for handling -->
<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>




为什么要创建两个应用程序上下文实例?
当我使用@Scheduled添加计划方法时,由于这两个应用程序上下文,该方法被调用两次。

最佳答案

您正在加载两次相同的spring配置文件。当然,您有两个单独的应用程序上下文。首先,我将DispatcherServerlet的servlet名称重命名为“ spring3mvc”。 Servlet定义应如下所示:

<servlet>
        <servlet-name>spring3Mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>


如果采用这种方式,则应在“ WEB-INF”目录中具有一个弹簧配置文件“ spring3Mvc-servlet.xml”。由于正确的命名约定,Spring将自动找到此文件。在此文件中,您应该只包含对于springMVC重要的bean。它可能看起来像这样:

<context:component-scan base-package="org.company.gui.controller"/>

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".view.jsp"/>
</bean>


这应该可以解决您的问题。

10-04 13:08