一、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容器有父子关系,相当于全局变量和局部变量的关系!!