Springmvc整合Spring(十)
来源:互联网 发布:大连淘宝职位招聘网 编辑:程序博客网 时间:2024/06/07 14:17
SpringMVC是Spring的一部分,那么需要整合吗?
1. 需要
通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 Spring 的配置文件中(而不是放在 SpringMVC 的配置文件中)。实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service 和 Dao。
问题: 若 Spring 的 IOC 容器和 SpringMVC 的 IOC 容器扫描的包有重合的部分, 就会导致有的 bean 会被创建 2 次。
解决:
1. 使 Spring 的 IOC 容器扫描的包和 SpringMVC 的 IOC 容器扫描的包没有重合的部分。
2. 使用 exclude-filter 和 include-filter 子节点来规定只能扫描的注解。
web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 配置启动 Spring IOC 容器的 Listener --> <!-- needed for ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
springmvc.xml
<!-- SpringMVC 的 IOC 容器中的 bean 可以来引用 Spring IOC 容器中的 bean. 返回来呢 ? 反之则不行. Spring IOC 容器中的 bean 却不能来引用 SpringMVC IOC 容器中的 bean!--><context:component-scan base-package="com.atguigu.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.xml
<context:component-scan base-package="com.atguigu.springmvc"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/></context:component-scan><!-- 配置数据源, 整合其他框架, 事务等. -->
2. 不需要
都放在 SpringMVC 的配置文件中. 也可以分多个 Spring 的配置文件, 然后使用 import 节点导入其他的配置文件。
注:多个Spring IOC容器之间可以设置父子关系,以实现良好的解耦。所以这里的Spring MVC WEB容器可以看做Spring IOC容器的一个子容器,子容器可以访问到父容器中的 Bean,但是父容器访问不到子容器中的 Bean。
阅读全文
0 0
- Springmvc整合Spring(十)
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十)数据层优化-整合druid
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十)数据层优化-整合druid
- SpringMVC-整合Spring整合
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建
- springMVC框架整合--(Spring+SpringMVC+hibernate)
- SpringMVC-15 Spring整合SpringMVC
- Spring+hibernate+springmvc 整合(二)
- Spring+hibernate+springmvc 整合(三)
- Spring+hibernate+springmvc 整合(四)
- Spring+hibernate+springmvc 整合(五)
- Spring+hibernate+springmvc 整合(六)
- Spring+hibernate+springmvc 整合(七)
- SpringMVC+Hibernate+Spring整合实例(一)
- SpringMVC+Hibernate+Spring整合实例(二)
- SpringMVC+Hibernate+Spring整合实例(一)
- SpringMVC+Hibernate+Spring整合实例(二)
- 字符串难题
- Android 代码中AddView 使用anko
- Java synchronized 关键字使用方法
- 17 多校
- 运算符重载中的隐式转换问题
- Springmvc整合Spring(十)
- SQL各种连接查询详解
- 装箱和拆箱,将字符串转化成包装类的方法
- 关于waitpid的使用问题,记录下
- TensorFlow
- Android中传统的SQLite使用方式
- 由c#程序中的static Main() 浅谈 static的含义
- js中数组的用法
- ARP协议及脚本编写u