spring mvc 初始化2次

项目中总是看到实力被初始化了2次, 应该是配置文件被执行了2次.
springmvc的配置和spring的配置是分开的.

spring配置:spring-common.xml

    <!-- 自动扫描装配bean -->
    <context:component-scan base-package="com.*.web">
    <!-- 不扫描@controller -->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>     
    </context:component-scan>

springmvc的配置文件:spring-mvc.xml

<context:component-scan base-package="com.*.controller" >
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

省略了其他的配置.
然后web.xml中的配置

<!-- 配置SpringMVC start -->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!-- 指定配置文件位置和名称,所以就不需要到web-inf目录 -->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 配置SpringMVC end -->

这里是明确了springmvc使用的配置文件的,
然后是spring的配置

<!-- 配置Spring监听 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath*:spring-common.xml</param-value>  
    </context-param>

这里就必须要明确指定配置文件的名称.
之前之所以出现2次加载, 因为我在这里配置的是spring-*.xml那么就找出了所有的复合要求的配置文件, 导致2次加载.

猜你喜欢

转载自blog.csdn.net/qq_21019419/article/details/82808782