SpringMVC框架 第12章 Spring整合SpringMVC
第12章 Spring整合SpringMVC
12.1 Spring 与SpringMVC的整合问题:
1) 需要进行 Spring 整合 SpringMVC 吗 ?
2 ) 还是否需要再加入 Spring 的 IOC 容器 ?
3)是否需要在xml 文件中配置启动 Spring IOC 容器的 ContextLoaderListener ?
需要: 通常情况下, 类似于数据源, 事务, 整合其他框架都是放在 Spring 的配置文件 中(而不是放在 SpringMVC 的配置文件中).
实际上放入 Spring 配置文件对应的 IOC 容器中的还有 Service 和 Dao.
不需要: 都放在 SpringMVC 的配置文件中. 也可以分多个 Spring 的配置文件, 然后使
用 import 节点导入其他的配置文件
12.2 Spring整合SpringMVC_解决方案配置监听器

在HelloWorldHandler、UserService类中增加构造方法,启动服务器,查看构造器执行情况。
问题: 若 Spring 的 IOC 容器和 SpringMVC 的 IOC 容器扫描的包有重合的部分, 就会导致有的 bean 会被创建 2 次.
解决:
使 Spring 的 IOC 容器扫描的包和 SpringMVC 的 IOC 容器扫描的包没有重合的部分.
使用 exclude-filter 和 include-filter 子节点来规定只能扫描的注解
12.3 SpringIOC 容器和 SpringMVC IOC 容器的关系
SpringMVC 的 IOC 容器中的 bean 可以来引用 Spring IOC 容器中的 bean.
返回来呢 ? 反之则不行. Spring IOC 容器中的 bean 却不能来引用 SpringMVC IOC 容器中的 bean
1) 在 Spring MVC 配置文件中引用业务层的 Bean
2)多个 Spring IOC 容器之间可以设置为父子关系,以实现良好的解耦。
3) Spring MVC WEB 层容器可作为 “业务层” Spring 容器的子容器:
即 WEB 层容器可以引用业务层容器的 Bean,而业务层容器却访问不到 WEB 层容器的 Bean