首页 > 代码库 > spring和springmvc之间的整合

spring和springmvc之间的整合

一、springmvc就是运行在spring的环境下,这两者是否需要进行整合,即:是不是要把service 、dao 、 事务 、和其它框架的整合放在springmvc的配置文件中。这样子在技术层面上是可以实现的,但是这样显得的不清晰。

二、整合:

1、在web.xml中配置contextLoaderListener,并且加入spring的配置文件applicationContext.xml

这样可以把service dao、事务、缓存、以及和其它框架的整合放到spring的配置文件里面

三、问题

当两个配置文件中扫描的包有重合的时候某些bean会被初始化2次

解决:在扫描包的子节点下配置 exclude-filter 和 include-filter

在springmvc的配置中:

<!-- 配置包扫描 -->
    <context:component-scan base-package="com.hy.springmvc" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

在spring的配置文件中:

<context:component-scan base-package="com.hy.springmvc" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan>

 

注意:

在springmvc的handler中可以引用spring的bean 如service dao,反之则不行,因为spring ioc容器和springmvc ioc容器有父子关系,相当于全局变量和局部变量的关系!!

 

spring和springmvc之间的整合