A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 长沙-小知姐姐 于 2019-1-3 09:32 编辑





spring框架与Springmvc框架概述

现在做为java开发的程序员,我相信基本上每个人都听说过Spring框架,而SpringMVC框架也逐渐的替代了原来的一些MVC框架,成为了Web层框架的 佼佼者,但是SpringMVC框架其实本身也是Spring 框架的一个后续产品,这两个框架在结合到一起使用的时候Spring会有自己的IOC容器,而Springmvc也 会有自己的ioc容器,两个框架一起使用的时候会有一些什么样的问题,或者两个框架的容器直接是一种什么样的关系,今天我们一起来讨论一下

spring框架与Springmvc框架整合使用的细节
Springmvc框架的基本使用
在理解spring框架与Springmvc框架一起使用时的两个容器关系之前,我们先对SpringMVC框架的使用步骤做一个简单介绍,以下是SpringMVC在使用 的时候的基本代码
1. 在web项目的web.xml文件中配置Springmvc前端控制器
2. 在项目中创建springmvc的配置文件

3. 当做了前面两个配置之后就能直接在项目中创建Controller类和方法去接收请求

Springmvc的基本执行过程

当我们做了上面的一些事情之后,服务器在启动的时候就会去创建Springmvc的前端控制器(DispatcherServlet),这个Servlet一创建就会帮助我们去加 载Springmvc的配置文件,从而初始化Springmvc的容器,创建所有的Controller。以后发送请求的时候,执行的过程会经过Springmvc的各个组件,大致流程 如下图

spring框架与Springmvc框架整合使用
1. spring框架与Springmvc框架整合使用的思路
当我们在实际案例中去使用SpringMVC的时候由于我们需要在Controller中注入Service,所以我们必须要保证Controller对象创建之前Service对象 要创建,而我们都知道Service最终都会交给Spring去管理,所以Spring的容器应该要先于Springmvc的容器创建才行
2. 具体代码实现
代码实现很简单,想要web项目在加载Springmvc的配置之前先加载Spring的配置,只需要在web.xml文件中配置一下Spring的监听器和配置文件位置就可以
spring框架与Springmvc框架一起使用后两个容器的关系

spring框架与Springmvc框架一起使用后Spring会有Spring的容器,在Spring容器中会创建Service,Dao层的对象,当然也会有SpringMVC的容器,SpringMVC容器会创建Controller对象,那么当我们去发送请求到Controller中去的时候,Controller中会注入Service对象,SpringMVC容器中的 Controller对象是如何去注入Spring容器中的service对象的,相信部分刚接触SpringMVC框架的学者会在这个地方有疑问,那么接下来我们就一起去跟着 Spring和SpringMVC源码一起来揭秘一下这个问题:
Spring容器加载 首先我们都知道,服务器一启动会去去执行Spring监听器中的代码加载Spring配置文件初始化容器,我们先去看看这一部分Spring是如何去完成的。

通过这一部分源码我们发现,服务器已启动,listener中确实会帮我们去创建Spring容器,但是他还会做一件事情,就是将容器保存到ServletContext域 对象中
SpringMVC容器加载 从Springmvc源代码中可以看到SpringMVC容器初始化的过程如下图:

当 SpringMVC的容器在初始化的时候,会把原来已经保存在ServletContext中的Spring容器设置成SpringMVC的父容器,也就是说Spring容器和SpringMVC
容器直接是一种逻辑上的父子关系,SpringMVC容器是子容器,Spring容器是父容器,所以在SpringMVC容器中的Controller能注入Spring容器中的 service对象

总结
通过前面的分析,这样我们在清楚了spring和springMVC的父子容器关系;所以在项目中当我们同时去使用Spring框架和Springmvc框架的时 候,Springmvc中的Controller能够访问到Springmvc父容器(Spring容器)中的对象

1 个回复

倒序浏览
一个人一座城0.0 来自手机 中级黑马 2019-1-30 09:02:32
沙发
看一看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马